Webpacker 在指定环境时不替换"process.env"变量



我依赖Webpacker在构建时将process.env变量转换为实际值。当我运行bin/rails webpacker:compile来执行此操作时,一切都按预期进行。类似这样的东西:

initialize({apiKey:process.env.MY_API_KEY})

正确地变成了这样的东西:

initialize({apiKey:"some-api-key-string"})

但是,当运行以特定环境(ANY环境(为前缀的同一命令时,替换将不起作用。

命令:RAILS_ENV=test bin/rails webpacker:compile

我只剩下这样的东西:

initialize({apiKey:t.env.MY_API_KEY})

我的webpacker.yaml文件包含我指定的每个环境。在这个特定的例子中,它回到默认设置:

test:
<<: *default

我有没有遗漏一件显而易见的事情?我还通过运行bin/rails assets:precompile验证了这一点。如果指定了RAIS_ENV,则不会替换process.env字符串。当环境关闭时,它会按预期工作。

提前感谢!

已解决!

事实证明,这是由于对.env文件加载方式的误解。我在.env文件中定义了该值,但在.env.test文件中没有定义。我假设它会从我的.env中提取所有值,并覆盖它们(如果值也存在于.env.test中(。但显然,它根本不需要从.env文件中加载任何内容,这就是为什么我只在构建具有特定RAILS_ENV集的资产时看到这个问题。

相关内容

  • 没有找到相关文章

最新更新