Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么uglifyjs不';不删除死代码?_Javascript_Uglifyjs - Fatal编程技术网

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
    会删除死代码

  • 要启用此功能,您需要在CLI(
    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,