如何在Angular 2中启用生产模式

我是Angular2的新手,我正在阅读已解决的问题,并且发现了这个问题

Angular2方法绑定错误:“值被检查后发生了变化”

这是非常有趣的,但是我的问题是我怎么能从开发转向生产呢,就是在看完这个问题之后才有了分歧

Angular2的生产和开发模式有什么区别?

我search,但没有发现任何可以指示的模式,以及你必须指示模式(开发)或模式(生产)。

在控制台我可以看到....Call enableProdMode() to enable the production mode. 但在System.config({或在组件类中。

是否需要特定的导入?

通过导入和执行函数(在调用bootstrap之前)启用它:

 import {enableProdMode} from '@angular/core'; enableProdMode(); bootstrap(....); 

但是这个错误是指示你的绑定有什么问题,所以你不应该把它解雇掉,而是试着弄清楚为什么会这样。

这对我来说,使用最新版本的Angular 2(2.0.0-rc.1):

main.ts

 import {enableProdMode} from '@angular/core'; enableProdMode(); bootstrap(....); 

以下是他们的文档中的函数参考: https : //angular.io/api/core/enableProdMode

为Angular 2应用程序启用生产模式的最佳方法是使用angular-cli并使用ng build -prod构build应用程序。 这将生成生产configuration文件的应用程序。 使用angular-cli的好处是能够在开发的同时使用ng serveng build开发模式而不必一直改变代码。

当我使用angular-cli构build一个新项目时。 包含一个名为environment.ts的文件。 在这个文件里面有一个像这样的variables。

 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的升级path,使用:

 ng.core.enableProdMode() 

对我来说(在JavaScript中)这看起来像:

 var upgradeAdapter = new ng.upgrade.UpgradeAdapter(); ng.core.enableProdMode() upgradeAdapter.bootstrap(document.body, ['fooApp']); 

转到src/enviroments/enviroments.ts并启用生产模式

 export const environment = { production: true }; 

为Angular 2

我的Angular 2项目没有“main.ts”文件提到其他的答案,但它有一个“ boot.ts ”文件,这似乎是大约相同的事情。 (差异可能是由于Angular的不同版本。)

在“boot.ts”中的最后一个import指令之后添加这两行代码适用于我:

 import { enableProdMode } from "@angular/core"; enableProdMode(); 

您不需要任何environment.ts文件或您的种子项目提供的文件。 只需要一个configuration.ts并添加所有需要运行时决定的条目(例如: – 日志loggingconfiguration和url)。 这将适合任何devise结构,也有助于未来

configuration.ts

 export class Configuration { isInProductionMode : bool = true; // other configuration serviceUrl : string = "http://myserver/myservice.svc"; logFileName : string = "..."; } 

//现在在你的启动代码中使用(main.ts或类似的项目devise

 import { Configuration } from './configuration'; import { enableProdMode } from '@angular/core'; .... if (Configuration.isInProductionMode) enableProdMode();