2009-06-18 76 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也是如此。