Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript打包问题_Javascript - Fatal编程技术网

Javascript打包问题

Javascript打包问题,javascript,Javascript,我有一个缩小/压缩的javascript文件,这会导致问题。问题是,非压缩输入文件的某些地方缺少一些分号,这在有换行符时不是问题,但在压缩文件时,换行符会被删除,从而导致解析器错误。例如: //input var x = function() { doSomething(); } // note: no semicolon var y = 'y'; //---- // output var x=function(){doSomething();}var y='y'; //

我有一个缩小/压缩的javascript文件,这会导致问题。问题是,非压缩输入文件的某些地方缺少一些分号,这在有换行符时不是问题,但在压缩文件时,换行符会被删除,从而导致解析器错误。例如:

//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运行非压缩文件并仔细检查错误以查找丢失的分号解决了问题。我仍然不明白为什么在分号后添加换行符会起作用……这让我很困惑。生命太短暂了。。。但我想,如果你觉得无聊到手摸不透,你可以回来满足我们无聊的好奇心!;-)很好的链接。我一点都不知道,链接很好。我一点也不知道。