首页 > 解决方案 > 如何导出使用对象解构定义的常量

问题描述

在 eslint 的首选解构规则的指导下,我定义了一些常量,如下所示:

const {
    NODE_ENV,
    API_URL,
} = process.env;

是否可以通过在语句前加上前缀来导出这些常量export

export const {
    NODE_ENV,
    API_URL,
} = process.env;

这看起来很自然,但是eslint-plugin-import抱怨违反了import/named规则:API_URL not found in '../constants'. 事实上,相关的MDN 页面export上也没有描述这种用法。

那么我们是否必须在单独的export语句中重复所有常量?

const {
    NODE_ENV,
    API_URL,
} = process.env;

export {
    NODE_ENV,
    API_URL,
};

标签: javascriptnode.jsecmascript-6eslintes6-modules

解决方案


是否可以通过在语句前加上前缀来导出这些常量 export

export const {
    NODE_ENV,
    API_URL,
} = process.env;

是的,根据规范,这是完全有效的。您可以在 export 的声明中使用解构模式const

这看起来很自然,但是 eslint-plugin-import 抱怨违反了 import/named 规则:API_URL not found in '../constants'.

听起来那个插件坏了。事实上,您的确切用例以前曾被报告为有效


推荐阅读