2015-09-15 40 views
2

我需要在我的幻燈片javascript中保留一些特定註釋。有沒有辦法讓UglifyJS2 --comments參數保留所有想要的評論?UglifyJS2在塊或文件末尾刪除想要的評論

例foo.js:

function foo() 
{ 
    // don't keep this 
    /* delete this */ 
    /* KEEPME */ 
    for (var i=0; i < 10; i++) 
    { 
    alert('alert #'+i); 
    } 
/* KEEPME */ 
} 

/*KEEPME*/ 

使用該Uglifyjs2命令行(與uglifyjs2版本2.4.24):

node uglifyjs2 --comments "/KEEPME/i" -o foo.min.js foo.js 

生成包含foo.min.js:

function foo(){/* KEEPME */ 
for(var i=0;i<10;i++){alert("alert #"+i)}} 

UglifyJs2似乎刪除文件或塊末尾的註釋,即使它們符合正則表達式tha t應該保存它們。 Uglify文檔指出,由於各種壓縮選項,並非所有註釋都可以保留。看起來這個例子中的評論應該是可保存的。禁用各種壓縮選項仍似乎刪除這些評論。

在文件末尾或塊的末尾添加其他必要的代碼語句將導致註釋被保留。

如果我能得到它來保存我想要的所有評論,那就太好了。我也會解決,而不是一個方法來刪除所有/ /評論,只是保留所有/ *評論* /。

回答

1

請參閱https://github.com/mishoo/UglifyJS2/issues/88,因爲這是uglifyjs中的一個已知錯誤。在當前狀態下,uglifyjs無法在(子)樹的末尾保留註釋(對於程序員來說:這意味着文件結束,函數結束和那種東西)

注意:我已經得到了答案只有在stackoverflow中刪除了鏈接,但我覺得應該在那裏解決這些問題。如果此答案不符合您的要求,請隨時刪除此答案。