max*_*lec 100 production angular
这似乎很简单,但我找不到任何解决方案.
那么,我如何检查我的应用程序是在生产模式还是开发模式下运行?
yur*_*zui 162
你可以尝试这个函数isDevMode
import { isDevMode } from '@angular/core';
...
export class AppComponent {
constructor() {
console.log(isDevMode());
}
}
Run Code Online (Sandbox Code Playgroud)
一个注意事项:小心这个功能
if(isDevMode()) {
enableProdMode();
}
Run Code Online (Sandbox Code Playgroud)
你会得到
错误:平台设置后无法启用prod模式
小智 22
根据https://angular.io/guide/deployment#enable-production-mode上的Angular部署指南:
构建用于生产(或附加--environment = prod标志)启用生产模式查看生成的CLI
main.ts以查看其工作原理.
main.ts 有以下内容:
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
Run Code Online (Sandbox Code Playgroud)
所以检查一下environment.production你是否在制作中.
很可能你不想打电话isDevMode().根据https://angular.io/api/core/isDevMode上的Angular API文档:
调用一次后,该值被锁定并且不再更改...默认情况下,这是正确的,除非用户在调用此函数之前调用enableProdMode.
我发现isDevMode()从ng build --prod构建调用总是返回true并始终锁定您在开发模式下运行.相反,请检查environment.production您是否正在投入生产.然后你将保持生产模式.
小智 10
只需检查环境文件中存在的生产变量,生产模式为 true,开发模式为 false。
import { environment } from 'src/environments/environment';
if (environment.production) {
// for production
} else {
// for development
}
Run Code Online (Sandbox Code Playgroud)
如果你想了解modeAngular,正如@yurzui 所说,你需要调用,{ 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
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50427 次 |
| 最近记录: |