0

这是交易:使用 webpack,您可以提供环境变量(通过DefinePluginEnvironmentPlugin),以便它们可以被process.env.MY_VAR. 它可以在构建时将它们与实际值内联。

但我无法尝试在 Reason 中使用它们。Bucklescript 有Node.Process模块,但是当你使用Node.Process##env它时,它会被转译为

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

所以它不会被 webpack 拾取并内联。那么我可以用什么来实现它将被转换为var myVar = process.env.MY_VAR

4

1 回答 1

3

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

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

这有几个好处%raw

  • external将检查它是否是语法上有效的全局标识符。有了%raw,任何事情都会发生,并且不能保证它会生成正确的 JavaScript。
  • externals 是内联的。这意味着它将评估它的使用位置,以防不同模块中的值发生变化或不同。它还可以防止间接全局变量的突变。

可能这些都不是那么重要,但我看不出使用%rawover有什么好处external,所以不妨正确地使用它。

于 2018-12-19T07:02:52.660 回答