나는 관련 질문을 읽고 있던 나는 발견 이 하나 ,하지만 생산 모드로 개발 전환 할 수있는 방법을 내 질문입니다. 여기서 지적한 모드 사이에는 약간의 차이가 있습니다 .
콘솔에서 볼 수는 ....Call enableProdMode() to enable the production mode.
있지만 해당 메소드를 호출 해야하는 유형의 인스턴스가 확실하지 않습니다.
누군가이 질문에 대답 할 수 있습니까?
나는 관련 질문을 읽고 있던 나는 발견 이 하나 ,하지만 생산 모드로 개발 전환 할 수있는 방법을 내 질문입니다. 여기서 지적한 모드 사이에는 약간의 차이가 있습니다 .
콘솔에서 볼 수는 ....Call enableProdMode() to enable the production mode.
있지만 해당 메소드를 호출 해야하는 유형의 인스턴스가 확실하지 않습니다.
누군가이 질문에 대답 할 수 있습니까?
답변:
부트 스트랩을 호출하기 전에 함수를 가져 와서 실행하여 활성화 할 수 있습니다.
import {enableProdMode} from '@angular/core';
enableProdMode();
bootstrap(....);
그러나이 오류는 바인딩에 문제가 있음을 나타내는 지표이므로 무시하지 말고 왜 발생하는지 파악하십시오.
ng.core.enableProdMode()
ionic start test sidemenu --v2 --ts
볼 수 app.ts
있지만이 부트 스트랩 함수는 어디에서 호출됩니까?
Angular 2 응용 프로그램에서 프로덕션 모드를 활성화하는 가장 좋은 방법은 angular-cli 를 사용하여 응용 프로그램을 빌드하는 것입니다 ng build --prod
. 프로덕션 프로파일을 사용하여 애플리케이션을 빌드합니다. angular-cli를 사용 하면 코드를 항상 변경하지 않고 개발 ng serve
하거나 사용 ng build
하는 동안 개발 모드를 사용할 수 있다는 이점 이 있습니다.
이것은 Angular 2 (2.0.0-rc.1)의 최신 릴리스를 사용하여 저에게 효과적이었습니다.
main.ts
import {enableProdMode} from '@angular/core';
enableProdMode();
bootstrap(....);
다음은 해당 문서에서 함수 참조입니다. https://angular.io/api/core/enableProdMode
enableProdMode
가 어디로 전화 해야하는지 알려주지 않은 것에 놀랐 습니다.
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);
enableProdMode ()를 @ angular / core에서 가져 오기 때문에 이것을 angular-cli가 아닌 프로젝트에 추가 할 수 있습니다.
대부분의 경우 prod 모드는 개발 시간 동안 필요하지 않습니다. 따라서 우리의 해결 방법은 로컬 호스트 가 아닌 경우에만 사용하는 것입니다 .
main.ts
루트 AppModule을 정의하는 브라우저 에서 :
const isLocal: boolean = /localhost/.test(document.location.host);
!isLocal && enableProdMode();
platformBrowserDynamic().bootstrapModule(AppModule);
는 isLocal
또한 같은 다른 목적으로 사용할 수 있습니다 enableTracing
에 대한 RouterModule
DEV 단계에서 더 나은 디버깅을 위해 스택 추적.
ng build 명령을 사용하면 environment.ts 파일을 덮어 씁니다.
기본적으로 ng build 명령을 사용하면 dev 환경이 설정됩니다.
프로덕션 환경을 사용하려면 ng build --env = prod 명령을 사용하십시오.
프로덕션 모드를 활성화하고 environment.ts 파일을 자동으로 업데이트합니다.
ng build --configuration=production
(기본적으로 CLI 생성 angular.json 파일을 사용하여) 으로 변경되었습니다 .
당신은 당신의 app.ts에서 사용할 수 있습니다 || main.ts 파일
import {enableProdMode} from '@angular/core';
enableProdMode();
bootstrap(....);
seed 프로젝트에서 제공 할 environment.ts 또는 해당 파일이 필요하지 않습니다. configuration.ts 만 가지고 런타임 결정이 필요한 모든 항목을 추가하십시오 (예 : 로깅 구성 및 URL). 이것은 모든 디자인 구조에 적합하며 미래에도 도움이 될 것입니다.
configuration.ts
export class Configuration {
isInProductionMode : bool = true;
// other configuration
serviceUrl : string = "http://myserver/myservice.svc";
logFileName : string = "...";
}
// 이제 시작 코드 (main.ts 또는 seed 프로젝트 디자인에 따라 동등한 코드)에서 사용하십시오.
import { Configuration } from './configuration';
import { enableProdMode } from '@angular/core';
....
if (Configuration.isInProductionMode)
enableProdMode();
isInProductionMode
를 어떻게 true / false로 구별 합니까? 빌드 타임에?
environment.ts 파일에서 프로덕션을 true로 설정
export const environment = {
production: true
};
ng build --prod
environment.ts를 environment.prod.ts로 바꿉니다.
ng build --prod