在ES6 synthax中,如何使用变量键进行命名导出?

时间:2018-04-11 13:08:07

标签: javascript node.js webpack ecmascript-6 requirejs

我有Object我不知道整个内容。

我想生成所有内容的命名导出,提醒一下,这是一个命名导出:

 export const myFunction = () => {};

如何迭代我的对象的键,并将所有内容导出为命名?

这样的事情不起作用,因为我正在尝试初始化module.exports

const cfgEnv = require(`./${process.env.REACT_APP_ENV}`);

Object.keys(cfgEnv).forEach((key) => {
  if (!module.exports) {
    module.exports = {};
  }
  module.exports[key] = cfgEnv[key];
});

2 个答案:

答案 0 :(得分:2)

您可以使用

const cfgEnv = require(`./${process.env.REACT_APP_ENV}`);
module.exports = cfgEnv;

它会像

一样工作
module.exports = {
    foo: 'bar'
}

答案 1 :(得分:1)

  

我想使用变量键生成命名导出?

你做不到。 ES6模块导出必须是静态的。

  

我正在尝试初始化module.exports

这不是ES6模块语法,而是CommonJs模块。但使用Object.assign

这样做相对简单
module.exports = Object.assign({}, require(`./${process.env.REACT_APP_ENV}`));