![](/img/trans.png)
[英]Customer specific environment variables or configuration (NX & Angular)
[英]Remove Code blocks based on Environment Nx Angular
我真的很想根据环境在我的 Angular 应用程序中插入或删除代码块。 特别删除某些不应用于生产的导入声明和相关代码,以保持包的轻量,同时在开发环境中获得额外代码的好处。 我知道 webpack 可以处理代码转换,所以我想知道是否有任何解决方案可以基于特殊语法删除代码块?
例如
// Special Import handled by Webpack
import { logger } from '@loggerzMaximus/core' in 'development'; // 1GB!!
export class AppComponent {
ngOnInit() {
// Should be stripped by webpack + import if env is not development
logger.log('LoggerzMaximus works for dev!');
}
}
从这个答案我已经看到 webpack 4 可以自动处理node
的 if 语句
——
if (process.env.NODE_ENV === 'development') {
if(info instanceof LogModel)
throw new Error("not a instance of LogModel");
}
有谁知道一种根据环境剥离代码的方法?
Angular 在使用--prod
标志时利用常春藤编译器的树摇动你的构建,这样你就可以使用environment.ts
来检查你的环境,然后任何在生产模式下运行时未使用的代码都将被保留通过 Angular 编译从你的包中删除。
NX 实际上还进行了超出这个简单解释的其他优化。
这里简单介绍一下treeshaking,以帮助澄清: Angular treeshaking indepth
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.