我真正感兴趣的是在基于环境的角度应用程序中插入或删除代码块。具体来说,删除某些不应该用于生产的导入声明和相关代码,以保持束光,同时在dev环境中获得额外代码的好处。我知道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");
}有谁知道一种基于环境的代码剥离方法吗?
发布于 2021-07-22 04:29:13
在使用--prod标志时,可以使用树来抖动您的构建,从而可以使用environment.ts来检查您的环境,然后在生产模式下运行时没有使用的任何代码都会被角编译从捆绑包中删除。
NX实际上也在这个简单的解释之外进行了额外的优化。
这里简要介绍了树的抖动,以帮助澄清:角树深度振动
https://stackoverflow.com/questions/68478409
复制相似问题