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 |