目前我有三种环境,我想在我的--env=prod
中获取server.ts
值,在这种情况下为prod
我在我的角度应用程序中获取了正确的环境对象,但是在我的server.ts
文件中找到它是实现ssr所必需的
我正在使用属性--env=prod
或--env=dev
设置环境,并在我的server.ts
中导入
import { environment } from'./src/environments/environment';
这是.angular-cli.json
中我的环境对象对于角度和服务器平台的看法
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts",
"test": "environments/environment.test.ts"
}
我确实拥有上述路径中的所有文件
答案 0 :(得分:2)
令我惊讶的是,人们很难理解这个问题。用大胆的大写字母大喊同一件事真是愚蠢。
简体:
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)变量选择正确的环境。
如果有人有一些见识,那么我确定我不是唯一感兴趣的人。
答案 1 :(得分:0)
试试这个
<div class="input-field col s12" ng-init="test=2">
<label for="item_code" class="active">Category</label>
<select
ng-model="test"
ng-options="c.name for c in categories track by c.id"
>
</select>
<p>This is the value {{test}}</p>
</div>
答案 2 :(得分:0)
Angular在构建时处理环境变量。
写作时
import { environment } from 'environment';
Angular会在您运行构建命令时获取您决定的环境。
这意味着即使你导入了dev环境(默认环境),如果你写了
ng build --prod
您的生产环境将被采用。
顺便说一句,如果环境文件中没有完全相同的值,则会出现编译错误。因此,您可以将变量从一个环境复制并粘贴到另一个环境中。
答案 3 :(得分:0)
如果您已经没有
,请将angular-cli
更新为最新版本
离开environments/environment.ts
并且不要将其用于dev
,而是创建一个environment.dev.ts
如果您没有environmentSource
,请添加一个 "environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.dev.ts",
"prod": "environments/environment.prod.ts",
"test": "environments/environment.test.ts"
}
。
foreach()