Как включить режим производства в 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
};