如何导出使用对象解构定义的常量

Cla*_*dio 4 javascript node.js ecmascript-6 eslint es6-modules

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

const {
    NODE_ENV,
    API_URL,
} = process.env;
Run Code Online (Sandbox Code Playgroud)

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

export const {
    NODE_ENV,
    API_URL,
} = process.env;
Run Code Online (Sandbox Code Playgroud)

这看起来很自然,但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,
};
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 5

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

export const {
    NODE_ENV,
    API_URL,
} = process.env;
Run Code Online (Sandbox Code Playgroud)

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

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

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