令我惊讶的是,人们理解这个问题是多么困难。用粗体大写字母大喊大叫是愚蠢的。
简化:
environment.ts = { magicKey: "default" }
environment.prod.ts = { magicKey: "46df465d4f64fd654f6fe4d64f" }
---- 使用“--configuration=prod”构建后 ----
在 app.component 中:
import { environment } from "environments/environment";
console.log(environment.magicKey); // == "46df465d4f64fd654f6fe4d64f"
在 server.ts 中:
import { environment } from "environments/environment";
注意:这会产生构建错误“无法解析 server.ts 中的‘环境/环境’”。其他线程建议使用正确的相对路径,但现在似乎我们只是得到了默认文件,即“fileReplacements”没有被尊重/使用:
import { environment } from "./src/environments/environment";
console.log(environment.magicKey); // == "default"
据我所知......它应该工作。我还验证了 angular.json 中的“服务器”也存在“fileReplacements”...不过。它似乎只是不想替换文件。
我认为这是因为 server.ts 不会发生“替换”。它在应用程序的“外部”,因此不会发生花哨的逻辑?或者也许导入(不同)正在覆盖它?
我的解决方法是简单地导入 server.ts 中的所有环境,并根据我在每台机器上设置的环境 (process.env) 变量选择正确的环境。
如果有人有一些见解,那么我相信我不是唯一感兴趣的人。