如何在Webpack中合理使用process.env变量

时间:2018-12-19 04:50:36

标签: webpack reason bucklescript

这很重要:通过webpack,您可以提供环境变量(通过DefinePluginEnvironmentPlugin),以便它们可以被process.env.MY_VAR之类的代码使用。可以在构建时将它们与实际值内联。

但是我在尝试理性使用它们时遇到了麻烦。 Bucklescript具有Node.Process模块,但是当您使用Node.Process##env时,它会被转换为

var process = require("process")
var myVar = process.env["MY_VAR"]

因此它不会被webpack拾取并内联。那么,我可以用来实现将其移植到var myVar = process.env.MY_VAR的目的是什么?

1 个答案:

答案 0 :(得分:3)

实际上,我认为这不是%raw的很好用例,而是宁愿使用普通的external

[@bs.val] external token : string = "process.env.TOKEN";

%raw相比,它有很多好处:

  • external将检查它是否在语法上是有效的全局标识符。使用%raw,一切都会顺利进行,并且不能保证它会产生正确的JavaScript。
  • 内嵌
  • external个。这意味着它将评估使用它的位置,以防例如在不同模块中值改变或不同的情况。它还可以防止间接全局变量的突变。

也许这些都不是那么重要,但是与%raw相比,使用external并没有带来任何好处,所以也可以正确地使用它。