如何在ES6的所有导入上方提升变量?

时间:2018-12-25 12:47:59

标签: node.js ecmascript-6 node-config

基本上,我正在使用babel来转换我的nodejs应用程序,以便可以使用es6以及node-config软件包。

默认情况下,node-config软件包在/ config文件夹中查找配置。可以通过执行类似BEFORE配置之前的操作来重新分配。 process.env["NODE_CONFIG_DIR"] = __dirname + "/configDir/";

但是,由于我使用的是ES6,因此导入会被吊起并始终在运行任何代码之前加载。

我想知道是否有一种方法可以将上面的代码悬挂在所有导入文件之上,从而使其在加载node-config之前运行?或者,也许还有其他方法可以解决这个问题?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

由于您正在使用Babel,因此您可以编写自己的插件来执行所需的任何操作,例如将该语句放在需要的文件前。

如果您想在源代码本身中解决此问题,请注意导入是按顺序执行的,因此您可以这样做

// main.js
import './configure-node-config';
import 'node-config';
…

// configure-node-config.js
process.env["NODE_CONFIG_DIR"] = __dirname + "/configDir/";

并确保process.env在加载node-config之前发生了突变。