Как включить режим производства в Angular 2

Я новичок в Angular2, я читал разрешенные вопросы, и я нашел это

Angular2 ошибка привязки метода: "значение изменилось после его проверки"

что очень интересно, но мой вопрос в том, как я могу перейти от разработки к производству, это то, что после прочтения этого вопроса есть различия.

В чем разница между режимом производства и разработки в Angular2?

Я искал, но не нашел ничего, чтобы указать, что режим, и где вы должны указывать режим (развитие) или режим (производство).

в консоли я вижу ....Call enableProdMode() to enable the production mode., но где в System.config({ или в классах компонентов.

Требуется ли конкретный импорт?

Ответ 1

Включите его, импортировав и выполнив функцию (перед вызовом начальной загрузки):

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

enableProdMode();
bootstrap(....);

Но эта ошибка является индикатором того, что что-то не так с вашими привязками, поэтому вы не должны просто отклонять ее, но попытайтесь понять, почему это происходит.

Ответ 2

Это сработало для меня, используя последнюю версию Angular 2 (2.0.0-rc.1):

main.ts

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

enableProdMode();
bootstrap(....);

Вот ссылка на функцию из их документов: https://angular.io/api/core/enableProdMode

Ответ 3

Лучший способ включить производственный режим для приложения Angular 2 - это использовать angular-cli и собрать приложение с помощью ng build --prod. Это создаст приложение с производственным профилем. Преимущество использования angular-cli заключается в возможности использования режима разработки с использованием ng serve или ng build при разработке без постоянного изменения кода.

Ответ 4

Когда я построил новый проект, используя 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.

Ответ 5

Перейдите к src/enviroments/enviroments.ts и включите режим производства

export const environment = {
  production: true
};

для Angular 2

Ответ 6

Чтобы включить производственный режим в Angular 6.XX Просто перейдите в файл среды

Как этот путь

Ваш путь: project>\src\environments\environment.ts

Изменить production: false от:

export const environment = {
  production: false
};

к

export const environment = {
  production: true
};

enter image description here

Ответ 7

В большинстве случаев режим prod не требуется во время разработки. Поэтому наше обходное решение заключается только в том, чтобы включить его, когда он НЕ localhost.

В вашем браузере main.ts, где вы определяете свой корневой AppModule:

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

isLocal также может использоваться для других целей, таких как enableTracing для RouterModule для лучшей отладки трассировки стека во время dev-фазы.

Ответ 8

Когда используется команда ng build, она перезаписывает файл environment.ts

По умолчанию при использовании команды ng build устанавливается среда разработки

Чтобы использовать производственную среду, используйте следующую команду ng build --env = prod

Это включит производственный режим и автоматически обновит файл environment.ts

Ответ 9

Для тех, кто делает путь обновления, не переключаясь на TypeScript, используйте:

ng.core.enableProdMode()

Для меня (в javascript) это выглядит так:

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

Ответ 10

Вам не нужен какой-либо файл environment.ts или такой файл, который будет предоставлен вашим проектным проектом. Просто имейте config.ts и добавьте все такие записи, для которых требуется решение времени выполнения (пример: - настройка журнала и URL-адреса). Это будет соответствовать любой структуре дизайна, а также поможет в будущем

configuration.ts

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();

Ответ 11

Вы можете использовать в своем app.ts || файл main.ts

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

Ответ 12

ng build --prod заменяет environment.ts на environment.prod.ts ng build --prod

Ответ 13

В моем проекте Angular 2 файл "main.ts" не упоминается в других ответах, но у него есть файл boot.ts, который, кажется, примерно такой же вещь. (Разница, вероятно, связана с различными версиями Angular.)

Добавление этих двух строк после последней директивы import в "boot.ts" работало для меня:

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

Ответ 14

В файле environment.ts установите производство в true

export const environment = {
  production: true
};