Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何启用生产模式?_Angular - Fatal编程技术网

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”}