Javascript打包问题
我有一个缩小/压缩的javascript文件,这会导致问题。问题是,非压缩输入文件的某些地方缺少一些分号,这在有换行符时不是问题,但在压缩文件时,换行符会被删除,从而导致解析器错误。例如:Javascript打包问题,javascript,Javascript,我有一个缩小/压缩的javascript文件,这会导致问题。问题是,非压缩输入文件的某些地方缺少一些分号,这在有换行符时不是问题,但在压缩文件时,换行符会被删除,从而导致解析器错误。例如: //input var x = function() { doSomething(); } // note: no semicolon var y = 'y'; //---- // output var x=function(){doSomething();}var y='y'; //
//input
var x = function() {
doSomething();
} // note: no semicolon
var y = 'y';
//----
// output
var x=function(){doSomething();}var y='y';
// error here: ^
奇怪的是,当我对输出文件进行替换,用分号和新行替换所有分号时,该文件工作正常!这使得查找错误变得非常困难,因为我想不出分号后的换行符会改变任何情况。你知道为什么做这个替换会让它工作吗?嗯。。。你试过了吗?嗯。。。您试过了吗?当有换行符时,有一个隐含分号。当有换行符时,有一个隐含分号。用于检查代码。如果您这样做并让它通过分号,它应该正确打包 在JavaScript中,分号隐式添加在换行符处。这会导致可能模棱两可的情况。这篇博文:简洁地描述了问题并给出了一个例子。用于检查代码。如果您这样做并让它通过分号,它应该正确打包
在JavaScript中,分号隐式添加在换行符处。这会导致可能模棱两可的情况。这篇博文:简洁地描述了这个问题并给出了一个例子。JSlint是一个很好的解决方案。此外,一些代码编辑器会为您查找这些类型的错误。如果我没记错的话,NetBeans会在您键入时实时捕获这些。我相信科莫多和阿普塔纳也一样。JSlint是一个很好的解决方案。此外,一些代码编辑器会为您查找这些类型的错误。如果我没记错的话,NetBeans会在您键入时实时捕获这些。我相信科莫多和阿普塔纳也一样。是的,我知道。文件中唯一的换行符现在直接跟在分号后面,所以它应该意味着任何东西,而且它正在工作。是的,我知道。文件中唯一的换行符现在直接跟在分号后面,因此它应该意味着任何东西,并且它正在工作。解释:通过JSLint运行非压缩文件并遍历错误以查找缺少的分号解决了问题。我仍然不明白为什么在分号后添加换行符会起作用……这让我很困惑。生命太短暂了。。。但我想,如果你觉得无聊到手摸不透,你可以回来满足我们无聊的好奇心!;-)解释:通过JSLint运行非压缩文件并仔细检查错误以查找丢失的分号解决了问题。我仍然不明白为什么在分号后添加换行符会起作用……这让我很困惑。生命太短暂了。。。但我想,如果你觉得无聊到手摸不透,你可以回来满足我们无聊的好奇心!;-)很好的链接。我一点都不知道,链接很好。我一点也不知道。