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

Ang*_*gel 169 angular

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

Angular2方法绑定错误:"检查后值已更改"

这是非常有趣的,但我的问题是我如何从开发变为生产,这是在阅读这个问题后存在差异

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

我搜索但没有找到任何表明模式,以及你必须指示模式(开发)或模式(生产)的地方.

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

是否需要特定的进口?

Sas*_*sxa 200

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

import {enableProdMode} from '@angular/core';

enableProdMode();
bootstrap(....);
Run Code Online (Sandbox Code Playgroud)

但是这个错误表明你的绑定有问题,所以你不应该只是解雇它,而是试着弄清楚它为什么会发生.

  • 我相信"angular2/core"现在是"@ angular/core".请参阅下面的答案. (3认同)
  • @DanielDudas我不使用es5,但尝试`ng.core.enableProdMode()` (2认同)
  • 我做了同样的事情,但遇到了类似“平台设置后无法启用生产模式”的异常。有人能帮我解决这个问题吗? (2认同)

Mat*_*s B 69

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

  • 我正在使用Angular 6,它正在构建 - 使用prod来构建prod模式.只需将此文件放在此页面即可访问此页面的任何新手. (6认同)

ada*_*asz 58

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

main.ts

import {enableProdMode} from '@angular/core';

enableProdMode();
bootstrap(....);
Run Code Online (Sandbox Code Playgroud)

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

  • @emp 我很惊讶`enableProdMode` 的官方 Angular 文档没有告诉你 * 哪里* 你应该调用它。 (2认同)

how*_*rss 44

当我使用angular-cli构建一个新项目时.包含了一个名为environment.ts的文件.在这个文件里面是一个像这样的变量.

export const environment = {
  production: true
};
Run Code Online (Sandbox Code Playgroud)

然后在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);
Run Code Online (Sandbox Code Playgroud)

您可以将此添加到非angular-cli项目中,我认为,因为enableProdMode()是从@ angular/core导入的.


Ale*_*idt 11

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

export const environment = {
  production: true
};
Run Code Online (Sandbox Code Playgroud)

对于Angular 2


Osa*_*rog 9

要在角度6.XX中启用生产模式,请转到环境文件

喜欢这条路

你的道路: project>\src\environments\environment.ts

改变production: false自:

export const environment = {
  production: false
};
Run Code Online (Sandbox Code Playgroud)

export const environment = {
  production: true
};
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


LeO*_* Li 8

大多数时候在开发期间不需要prod模式.因此,我们的解决方法是仅在 localhost 时启用它.

在您main.ts定义根AppModule的浏览器中:

const isLocal: boolean = /localhost/.test(document.location.host);
!isLocal && enableProdMode();
platformBrowserDynamic().bootstrapModule(AppModule);
Run Code Online (Sandbox Code Playgroud)

isLocal也可用于其他目的,如enableTracing用于RouterModule在开发阶段更好的调试堆栈跟踪.


Mah*_*ine 8

ng build --prod 用 environment.prod.ts 替换 environment.ts

ng build --prod


Vin*_*Ram 8

在 environment.ts 文件中将 production 设置为 true

export const environment = {
  production: true
};
Run Code Online (Sandbox Code Playgroud)


Pan*_*kos 8

对于Angular v12及更高版本ng build --prod已弃用。

您现在应该ng build --configuration=production像以前一样再次使用 where来构建它

src/environments/environment.ts文件将替换为该文件的目标特定版本src/environments/environment.prod.ts.


小智 6

使用ng build命令时,它将覆盖environment.ts文件

默认情况下,使用ng build命令设置开发环境

为了使用生产环境,请使用以下命令ng build --env = prod

这将启用生产模式并自动更新environment.ts文件


Sam*_*amu 5

您可以在您的app.ts中使用|| main.ts文件

import {enableProdMode} from '@angular/core';
enableProdMode();
bootstrap(....);
Run Code Online (Sandbox Code Playgroud)