我使用babelify + watchify + envify + uglify并设置node_env
$(document).ready(function() {
$('#btn1').click(function() {
$("ol").append("<li>"+$("#txt1").val()+"</li>");
$("#txt1").val("").focus();
$('li').addClass('block2');
$('ol').sortable();
$('li').click(function() {
$(this).hide(500, function() {
$(this).remove('li');
});
});
});
所以我想到这样断言:
watchify ... -g [envify --NODE_ENV development]
uglify非常聪明,可以删除debug_assert的主体,但不会在代码中实际调用debug_assert。
如果没有太多的额外代码,可以从发布版本中正确删除断言调用吗?
答案 0 :(得分:0)
您可以使用jsfmt及其代码重写功能:
jsfmt --rewrite "assert.equal(a, b, c) -> ''" file.js
尚未经过测试,但它可能会发挥作用。它用空字符串替换所有出现的assert.equal
。
答案 1 :(得分:0)
通常你会使用一系列工具。正如您所说,envify
将转换
if(process.env.NODE_ENV !== 'production'){
到
if('production' !== 'production'){
意味着if
的主体永远不会执行。
之后你可以做的最简单的事情是使用uglifyify
,因为它会执行死代码删除并删除if
。