Angular 在分发文件夹中没有看到环境文件
Angular Environment file not seen in the distribution folder
我有一个 angular 8 应用程序并正在测试 enviornment.ts 文件中设置的超时。我目前已将超时设置为 6 分钟
我有两个环境文件 enviornment.ts 和 enviornment.prod.ts。我相信 enviornment.prod.ts 用于
ng build --prod 被执行。
在 运行 ng build 命令之后,我无法在发行版中找到环境文件 folder.Could 有人告诉我
我在哪里可以找到它。它是在一些二进制等
这是我的环境文件的样子
// The file contents for the current environment will overwrite these during build.
// The build system defaults to the dev environment which uses `environment.ts`, but if you do
// `ng build --env=prod` then `environment.prod.ts` will be used instead.
// The list of which env maps to which file can be found in `.angular-cli.json`.
export const environment = {
production: false,
baseUrl: "http://localhost:57973",
loginUrl: "/Login",
adminUrl: "/Admin",
userIdleMinutes: 10
};
首先,您需要在代码中实际使用 environment.ts
文件。例如:
import { Component } from '@angular/core';
import { environment } from '../environments/environment';
@Component({})
export class AppComponent {
env = environment;
constructor() {
console.log(this.env.baseUrl);
}
}
否则,未使用的代码将被摇树。
然后,environment.ts
文件中的代码将被捆绑到主 XXXXX.js 文件中。
万物环境有两个关键文件。
angular.json - 应该有如下内容:
"architect": {
"build": {
...
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
换句话说,如果配置是生产配置,任何对 environment.ts 的引用都将被覆盖,而 environment.prod.ts 将被使用。
所以是的,你是对的 ...我相信在执行 ng build --prod 时使用 enviornment.prod.ts。
main.ts - 应该有
if (environment.production) {
enableProdMode()
}
例如,这会删除变更检测中的开发检查。
如果 enableProdMode()
尚未 运行。
,您将看到控制台消息 Angular is running in the development mode. Call enableProdMode() to enable the production mode.
environment.ts
开发时使用。
其变量的内容,在编译时被替换。
也就是说,angular 团队实现环境文件的整个概念在其基础上存在重大缺陷。在我看来,最大的一个问题是需要 编译每个环境 。实际上,使用不同的编译文件进行测试和使用不同的生产文件是一个坏主意。
您应该完全部署您测试的内容,而不是相似,而是完全相同。
davembush suggested a workaround 使用配置文件,或者类似 .net 的 web.config 动态填充您的配置。这需要一些 hack&slash,但可以为您提供一次编译即可部署的应用程序。
值得注意。
我有一个 angular 8 应用程序并正在测试 enviornment.ts 文件中设置的超时。我目前已将超时设置为 6 分钟 我有两个环境文件 enviornment.ts 和 enviornment.prod.ts。我相信 enviornment.prod.ts 用于 ng build --prod 被执行。
在 运行 ng build 命令之后,我无法在发行版中找到环境文件 folder.Could 有人告诉我 我在哪里可以找到它。它是在一些二进制等
这是我的环境文件的样子
// The file contents for the current environment will overwrite these during build.
// The build system defaults to the dev environment which uses `environment.ts`, but if you do
// `ng build --env=prod` then `environment.prod.ts` will be used instead.
// The list of which env maps to which file can be found in `.angular-cli.json`.
export const environment = {
production: false,
baseUrl: "http://localhost:57973",
loginUrl: "/Login",
adminUrl: "/Admin",
userIdleMinutes: 10
};
首先,您需要在代码中实际使用 environment.ts
文件。例如:
import { Component } from '@angular/core';
import { environment } from '../environments/environment';
@Component({})
export class AppComponent {
env = environment;
constructor() {
console.log(this.env.baseUrl);
}
}
否则,未使用的代码将被摇树。
然后,environment.ts
文件中的代码将被捆绑到主 XXXXX.js 文件中。
万物环境有两个关键文件。
angular.json - 应该有如下内容:
"architect": {
"build": {
...
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
换句话说,如果配置是生产配置,任何对 environment.ts 的引用都将被覆盖,而 environment.prod.ts 将被使用。
所以是的,你是对的 ...我相信在执行 ng build --prod 时使用 enviornment.prod.ts。
main.ts - 应该有
if (environment.production) {
enableProdMode()
}
例如,这会删除变更检测中的开发检查。
如果 enableProdMode()
尚未 运行。
Angular is running in the development mode. Call enableProdMode() to enable the production mode.
environment.ts
开发时使用。
其变量的内容,在编译时被替换。
也就是说,angular 团队实现环境文件的整个概念在其基础上存在重大缺陷。在我看来,最大的一个问题是需要 编译每个环境 。实际上,使用不同的编译文件进行测试和使用不同的生产文件是一个坏主意。
您应该完全部署您测试的内容,而不是相似,而是完全相同。
davembush suggested a workaround 使用配置文件,或者类似 .net 的 web.config 动态填充您的配置。这需要一些 hack&slash,但可以为您提供一次编译即可部署的应用程序。
值得注意。