Angular 如何启用生产模式?
我在阅读相关问题时发现,但我的问题是如何从开发模式切换到生产模式。所指出的模式之间存在一些差异 在控制台中,我可以看到Angular 如何启用生产模式?,angular,Angular,我在阅读相关问题时发现,但我的问题是如何从开发模式切换到生产模式。所指出的模式之间存在一些差异 在控制台中,我可以看到…Call enableProdMode()以启用生产模式。但是,我不确定应该在哪种类型的实例上调用该方法 有人能回答这个问题吗?您可以通过导入并执行函数(在调用引导程序之前)来启用它: 但此错误表明绑定有问题,因此您不应忽略它,而应尝试找出原因。使用Angular 2(2.0.0-rc.1)的最新版本,这对我来说很有效: main.ts import {enableProdMo
…Call enableProdMode()以启用生产模式。
但是,我不确定应该在哪种类型的实例上调用该方法
有人能回答这个问题吗?您可以通过导入并执行函数(在调用引导程序之前)来启用它:
但此错误表明绑定有问题,因此您不应忽略它,而应尝试找出原因。使用Angular 2(2.0.0-rc.1)的最新版本,这对我来说很有效: main.ts
import {enableProdMode} from '@angular/core';
enableProdMode();
bootstrap(....);
export class Configuration {
isInProductionMode : bool = true;
// other configuration
serviceUrl : string = "http://myserver/myservice.svc";
logFileName : string = "...";
}
以下是他们文档中的功能参考:为Angular 2应用程序启用生产模式的最佳方法是使用
ng build--prod使用并构建应用程序。这将使用生产配置文件构建应用程序。使用angular cli的好处是能够在开发时使用ng serve
或ng build
使用开发模式,而无需始终更改代码 当我使用angular cli构建新项目时。包含一个名为environment.ts的文件。在这个文件中有这样一个变量
export const environment = {
production: true
};
那么在main.ts中你就有了这个。
import './polyfills.ts';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { environment } from './environments/environment';
import { AppModule } from './app/';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule);
我假设您可以将其添加到非angular cli项目中,因为enableProdMode()是从@angular/core导入的。对于执行升级路径而不切换到TypeScript使用的用户:
import './polyfills.ts';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { environment } from './environments/environment';
import { AppModule } from './app/';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule);
ng.core.enableProdMode()
对我来说(在javascript中),这看起来像:
var upgradeAdapter = new ng.upgrade.UpgradeAdapter();
ng.core.enableProdMode()
upgradeAdapter.bootstrap(document.body, ['fooApp']);
我的Angular 2项目没有其他答案中提到的“main.ts”文件,但它有一个“boot.ts”文件,这似乎是一样的。(这种差异可能是由于角度的不同版本造成的。)
在“boot.ts”中的最后一个import
指令之后添加这两行对我很有用:
import { enableProdMode } from "@angular/core";
enableProdMode();
转到src/environments/environments.ts
并启用生产模式
export const environment = {
production: true
};
对于Angular 2,您不需要种子项目提供任何environment.ts或此类文件。只需创建一个configuration.ts并添加所有需要运行时决策的条目(例如:-记录配置和URL)。这将适用于任何设计结构,也有助于未来
配置。ts
import {enableProdMode} from '@angular/core';
enableProdMode();
bootstrap(....);
export class Configuration {
isInProductionMode : bool = true;
// other configuration
serviceUrl : string = "http://myserver/myservice.svc";
logFileName : string = "...";
}
//现在在您的启动代码中使用(main.ts或根据种子项目设计的等效代码)
import { Configuration } from './configuration';
import { enableProdMode } from '@angular/core';
....
if (Configuration.isInProductionMode)
enableProdMode();
大多数情况下,prod模式在开发期间是不需要的。因此,我们的解决方法是只在而不是本地主机时启用它
在浏览器的main.ts
中定义根AppModule:
const isLocal: boolean = /localhost/.test(document.location.host);
!isLocal && enableProdMode();
platformBrowserDynamic().bootstrapModule(AppModule);
isLocal
还可用于其他目的,如RouterModule
的enableTracing
,以便在开发阶段更好地调试堆栈跟踪。使用ng build命令时,它会覆盖environment.ts文件
默认情况下,当使用ng build命令时,它会设置dev环境
要使用生产环境,请使用以下命令
ng构建--env=prod
这将启用生产模式并自动更新可在app.ts | | main.ts文件中使用的environment.ts文件
import {enableProdMode} from '@angular/core';
enableProdMode();
bootstrap(....);
启用角度为6.X.X的生产模式
只需转到环境文件
喜欢这条路吗
您的路径:project>\src\environments\environment.ts
更改生产:false
来自:
export const environment = {
production: false
};
到
ng构建--prod
将environment.ts替换为environment.prod.ts
environment.ts文件中的ng build--prod
将生产设置为true
export const environment = {
production: true
};
在第10节中:
在您的'app'下找到文件路径/environments/environment.ts,并将'production'设置为'true'
更改前:
export const environment = {
production: false
};
变更后:
export const environment = {
production: true
};
我希望它能帮助你。只要写下:
ng s—prod
这将像在prod模式下一样为项目服务如果不使用typescript,如何启用ProdMode()?如果我只是在ng.platform.browser.bootstrap(…)之前调用此方法,我会收到以下错误:enableProdMode不可用defined@DanielDudas我不使用es5,但请尝试使用
ng.core.enableProdMode()
我相信“angular2/core”现在就可以了“@angular/core”。见下面我的答案。我正在使用Ionic2。这个引导程序在什么文件中调用?当我生成一个示例应用程序时,ionic start test sidemenu--v2--ts
我看到了app.ts
,但是这个引导程序在哪里调用?我做了同样的操作,但是我得到了一个异常,比如“平台设置后无法启用产品模式”"。有人能帮我解决这个问题吗?新链接:@emp我很惊讶,enableProdMode
的官方Angular文档没有告诉您应该在哪里调用它。这对于非产品构建如何工作?我假设在这种情况下,environment.ts被忽略,所以在尝试导入modu时您不会得到tsc编译错误le?@llasarov the environment.ts的行为就像一个配置文件,在其中您可以打开/关闭生产模式。main.ts只调用enableProdMode(如果为真),因此这可以在没有任何特定构建过程的情况下完成。您也可以在此处选择日志记录,方法是检查日志模式是否为debug,然后您的自定义日志记录服务执行调试详细的StackTrace else只记录了一行,我发现使用Webpack 2+Angular2和Typescript通过配置非常疯狂,创建了一个简单的解决方案:如何在构建时将产品/开发与isInProductionMode
区分为真/假?通常作为一个GULP参数或等效项JSON有如下条目:-“environmentSource”:“environments/environment.ts”,“environments”:{“dev”:“environments/environment.ts”,“prod”:“environments/environment.prod.ts”}