2009-06-18 75 views
1

我有一個縮小/壓縮的JavaScript文件,這是造成問題。問題是沒有打包的輸入文件有一些丟失的分號某處這在有換行符時不是問題,但是當文件打包時,換行符被刪除並導致解析器錯誤。例如:Javascript包裝問題

//input 
var x = function() { 
    doSomething(); 
} // note: no semicolon 
var y = 'y'; 

//---- 
// output 
var x=function(){doSomething();}var y='y'; 
//     error here:^

奇怪的是,當我做了更換輸出文件用分號和新的生產線,該文件的工作,以取代所有分號!這使得它很難找到這個錯誤,因爲AFAIK,我想不出任何在分號後換行會改變什麼的情況。任何關於爲什麼做這個替換的想法會使它工作?

回答

5

呃......你有沒有試過JSLint

+4

它傷害了我的感情。 – nickf 2009-06-18 02:50:35

+2

該死的你Doug Crockford! – ichiban 2009-06-18 02:51:46

+0

來解釋:通過JSLint運行非壓縮文件並涉及錯誤以查找缺少的分號解決了問題。我仍然對爲什麼在分號後添加換行符時遇到困惑...... – nickf 2009-06-18 02:55:12

3

當有換行符時,就有一個隱含的分號。

1

JSlint是一個很好的解決方案。此外,一些代碼編輯器會爲您找到這些錯誤。如果我沒有記錯,NetBeans會在您鍵入時實時捕獲這些內容。我相信科莫多和Aptana也是如此。