如何在 ES6 中将变量提升到所有导入之上?

How can I hoist a variable above all imports in ES6?

基本上我使用 babel 来编译我的 nodejs 应用程序,所以我可以使用 es6,以及 node-config 包。

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

但是,由于我使用的是 ES6,导入正在被提升并且总是在任何代码 运行 之前加载。

我想知道是否有一种方法可以将上述代码提升到所有导入之上,以便它在 node-config 加载之前 运行s?或者是否有其他方法可以解决这个问题?

感谢任何帮助!

由于您使用的是 Babel,因此您可以编写自己的插件来执行您需要的任何操作,例如将该语句添加到您需要的文件中。

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

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

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

并确定 process.envnode-config 加载之前发生了突变。