2011-03-16 49 views
2

我正在处理纯js前端,并试图今天使用Juicer来压缩javascripts。 它工作好思想没有缩小,因为我使用JsLint找到的库中有大量的错误,验证程序对于文件最小化是必不可少的。 我离开它,因为至少合并工作会很酷,但似乎并非如此。 尽管最终所有文件都合并为一个,但应用程序停止工作,因为jquery被视为未定义。尽管如此,该文件仍然处于第一位。js文件的简单合并导致错误和jquery未定义

什么可能是这种奇怪行为的可能原因?非常感谢您的回答!

UPD这里是一个link to the merged file

+0

库中有很多错误吗?你的意思是真正的错误或只是jslint错误? – 2011-03-17 00:12:13

+0

他们是否按照通常包含的顺序合并?你可以发布有问题的JavaScript或链接到页面? – ctcherry 2011-03-17 00:12:27

+0

他们是jslint“错误”。顺序是完全一样的,这里是文件:https://gist.github.com/874368。我得到的包括这个文件的错误是“vendor.min.js:4147Uncaught SyntaxError:Unexpected token ILLEGAL”,我真的不明白,因为它是注释上的错误。如果我包含任何其他js文件 - 他们无法识别jQuery。 – lyuba 2011-03-17 14:06:26

回答

5

因为你只想合并它们,而不是它们最小化,也许尝试手动合并来。它只是:

cat file1.js file2.js file3.js > all.js 

这是一样的CSS,没有花哨的合并是必要的。

JavaScript的缩小我建议UglifyJS,因为它不像其他工具不会破坏代码。 UglifyJS由jQuery使用。

当您通过简单的连接合并JavaScript文件时,重要的是文件顺序不要打破依赖关系。有时会导致问题的另一件事是缺少分号(这些会在缩小后破坏代码)或者在文件末尾缺少新行。

+0

Iloveyouiloveyouiloveyou。 UglifyJS是有史以来最好的事情。哦,我的哎呀。你节省了我几个小时的手工工作。 – Kayla 2011-03-17 00:52:51

+0

@tylermwashburn:如果你太丑,可以使用[beautifier](http://jsbeautifier.org/)。 ;) – rsp 2011-03-17 00:59:01

+0

我已经知道这一点。 ;) – Kayla 2011-03-17 01:12:30