gpt4 book ai didi

ruby-on-rails - 指定环境时 Webpacker 不替换 "process.env"变量

转载 作者:行者123 更新时间:2023-12-05 07:10:11 26 4
gpt4 key购买 nike

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

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

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

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

但是,当运行以特定环境(任何环境)为前缀的相同命令时,替换不起作用。

命令: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 文件中定义了值,但在我的 .env.test 文件中没有。我假设它会从我的 .env 中提取所有值并覆盖它们,如果值也存在于我的 .env.test 中。但显然,它根本不会从 .env 文件中加载任何内容,这就是为什么我只在构建具有特定 RAILS_ENV 集的 Assets 时才看到这个问题。

关于ruby-on-rails - 指定环境时 Webpacker 不替换 "process.env"变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61327018/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com