Javascript 为什么uglifyjs不';不删除死代码?
例如,我有以下代码:Javascript 为什么uglifyjs不';不删除死代码?,javascript,uglifyjs,Javascript,Uglifyjs,例如,我有以下代码: if ("a" !== "a") { console.log('really?'); } var a = 5; 然后我编写uglifyjs code.js-o code.min.js。因此,我有以下几点: if("a"!=="a"){console.log("really?")}var a=5; 如何删除if语句中的死代码?根据for uglifyjs,维护人员已将开发工作转移到。自述文件还指出,它只删除: 一些无法访问的代码并发出警告(返回后的代码, 抛出、
if ("a" !== "a") {
console.log('really?');
}
var a = 5;
然后我编写uglifyjs code.js-o code.min.js
。因此,我有以下几点:
if("a"!=="a"){console.log("really?")}var a=5;
如何删除if语句中的死代码?根据for uglifyjs,维护人员已将开发工作转移到。自述文件还指出,它只删除:
一些无法访问的代码并发出警告(返回后的代码,
抛出、中断或继续语句,函数/变量除外
声明)
Uglify2的工作更全面。我在上测试了您的代码,它确实删除了整个if语句。它还支持“条件编译”(或者更准确地说是条件代码删除),允许您在丑化时在命令行定义全局变量。尽管这个问题已经得到了公认的答案,但我认为值得一提的是
UglifyJS2
会删除死代码uglifyjs——压缩未使用的死代码
)或选项
对象(如果以编程方式调用uglify
)(uglify(压缩:{unused:true,死代码:true});
)死代码是什么<代码>控制台日志?还是整个if块?前者是一个完全有效的代码,具有完全有效的目的。如果(a==1 | | a==1),这与优化
非常不同。另外,我认为uglifier的优化非常有限。if块中的代码永远不会运行。所以,它死了。你们需要静态分析工具,而不仅仅是AST解析器,你们当然需要知道你们在争论什么。Stackoverflow不是你表达想法或怀疑的地方,尤其不是你说服别人你知道你实际上不知道的东西的地方。UglifyJS2完全可以删除死代码。谢谢您的帮助!这就是我的问题的解决方案对我来说,我还需要将evaluate和conditionals设置为true,并将大多数其他内容设置为false。我只想消除死代码,而不是任何其他压缩。如果您使用带有uglifyjs的webpack,还可以在package.json中使用sideEffects
prop,