Angular 응용 프로그램이 프로덕션 모드 또는 개발 모드에서 실행 중인지 확인하는 방법
이것은 쉬운 것처럼 보이지만, 저는 어떤 해결책도 찾을 수 없었습니다.
그렇다면 앱이 운영 모드 또는 개발 모드에서 실행되고 있는지 확인하려면 어떻게 해야 합니까?
이 기능은 DevMode입니다.
import { isDevMode } from '@angular/core';
...
export class AppComponent {
constructor() {
console.log(isDevMode());
}
}
참고: 이 기능에 주의하십시오.
if(isDevMode()) {
enableProdMode();
}
얻게 될 것입니다.
오류: 플랫폼 설치 후 prod 모드를 활성화할 수 없습니다.
기타 옵션
환경 변수
import { environment } from 'src/environments/environment';
if (environment.production) {
//
}
webpack process.env에 의해 주입되었습니다.NODE_ENV 변수
declare let process: any;
const env = process.env.NODE_ENV;
if (env === 'production') {
//
}
https://angular.io/guide/deployment#enable-production-mode 의 Angular Deployment 가이드에 따라:
생산을 위한 빌드(또는 --environment=filename 플래그 추가)는 생산 모드를 활성화합니다. CLI에서 생성된 것을 보십시오.
main.ts
어떻게 작동하는지 확인할 수 있습니다.
main.ts
에는 다음이 있습니다.
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
그래서 확인합니다.environment.production
작업 중인지 확인합니다.
전화하고 싶지 않을 가능성이 높습니다.isDevMode()
Angular API 설명서(https://angular.io/api/core/isDevMode 참조):
한 번 호출한 후 값이 잠겨 더 이상 변경되지 않습니다...사용자가 이 모드를 호출하기 전에 enableProdMode를 호출하지 않는 한 기본적으로 이는 사실입니다.
내가 찾은 소명은isDevMode()
에서ng build --prod
빌드는 항상 true를 반환하고 항상 dev 모드에서 실행되도록 잠급니다.대신 체크environment.production
작업 중인지 확인합니다.그러면 당신은 생산 모드를 유지할 것입니다.
환경 파일에 있는 생산 변수를 확인하기만 하면 생산 모드에서는 true이고 개발에서는 false입니다.
import { environment } from 'src/environments/environment';
if (environment.production) {
// for production
} else {
// for development
}
그것은 당신이 ...을 요구하느냐에 달려 있습니다.
만약 당신이 알고 싶다면.mode
@yurzui가 말했듯이, Angular의 당신은 전화해야 합니다.{ isDevMode } from @angular/core
하지만 돌아올 수 있습니다.false
전화하는 경우에만enableProdMode
그 전에
빌드 환경을 알고 싶다면, 다시 말해 앱이 미니화되어 실행되고 있는지 여부를 확인하려면 빌드 시스템에서 빌드 변수를 설정해야 합니다.사용.Webpack
예를 들어, 당신은 그것을 보아야 합니다.definePlugin
.
https://webpack.github.io/docs/list-of-plugins.html#defineplugin
new webpack.DefinePlugin({
ENV_PRODUCTION: !!process.env.NODE_ENV
});
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'
import { enableProdMode } from '@angular/core';
import { AppModule } from './app.module'
platformBrowserDynamic().bootstrapModule(AppModule);
enableProdMode();
이것은 나의 코드였기 때문에 나는 같은 오류를 얻었습니다.방금 3호선과 4호선을 갈아탔습니다.그러면 문제가 해결됩니다.따라서 부트스트랩 모듈 전에 --prod 모드를 활성화해야 합니다.
올바른 것은 이런 식으로 넣을 수 있습니다.
enableProdMode()
platformBrowserDynamic().bootstrapModule(AppModule);
당신은 당신이 당신의 반환값을 확인하는 것에 주의해야 합니다.isDevMode()
기능.
여부를 했습니다.: 존여부확중때설실다패니습했정이에문기었이재인는를하▁my다.if (isDevMode)
상항이었습니다.true
내가 그것을 선언했기 때문에 생산 중에도.import { isDevMode } from '@angular/core';
.
if (isDevMode())
된 환된반false
정확하게
언급URL : https://stackoverflow.com/questions/39535386/how-to-check-if-angular-application-running-in-production-or-development-mode
'programing' 카테고리의 다른 글
WPF 바인딩에서 값을 null로 설정합니다. (0) | 2023.05.05 |
---|---|
Bash를 사용하여 표준 출력과 표준 오류를 모두 파일로 리디렉션하고 추가하는 방법 (0) | 2023.05.05 |
Windows용 Docker 오류: "BIOS에서 하드웨어 지원 가상화 및 데이터 실행 보호를 사용하도록 설정해야 합니다." (0) | 2023.05.05 |
리포지토리 패턴 단계별 설명 (0) | 2023.05.05 |
둥근 모서리 테두리의 내용물도 둥근 모서리로 만드는 방법은 무엇입니까? (0) | 2023.05.05 |