JS – 不能合并lib文件

我有一个index.html文件中的多个lib文件,按照正在运行的应用程序的顺序加载。

<!-- example of some of them... --> <script src="/./sys/lib/jquery.min.js"></script> <script src="/./sys/lib/jquery.ui.min.js"></script> <script src="/./sys/lib/jquery.easing.min.js"></script> <script src="/./sys/lib/underscore.min.js"></script> <script src="/./sys/lib/handlebars.min.js"></script> <script src="/./sys/lib/backbone.min.js"></script> <script src="/./sys/lib/moment.min.js"></script> <script src="/./sys/lib/libs.extensions.js"></script> 

这些运行良好,他们已经全部缩小。

现在,我想把这些全部合并成一个文件来加载速度:

 <script src="/./sys/lib/libs.all.js"></script> 

因此,我打开了新的libs.all.js文件,并按照与上面列出的顺序完全相同的顺序 ,将缩小的.js文件逐个粘贴到修改中。 这工作,直到我到了moment.js。 当我然后粘贴并运行它,我得到一个JS错误。

 TypeError: (intermediate value)(...) is not a function 

我没有得到我所缺less的东西 – 如果我们将它们按正确的顺序粘贴到HTML文件中,那么它们有什么区别呢?

很可能你的一个js文件丢失了一个; 最后。 打开一个你认为是造成错误,并添加一个; 最后还是加一个; 到下一个js文件的第一行。

修改JavaScript代码并不能解决问题的根本原因,所以一旦你引入一个新的JavaScript文件,这可能会再次发生。

对于永久性修复,至less有几个select – 即涉及修改构build,以便将来不会发生这种情况,即使缺less分号:

  • 注入一个; 您要连接的文件之间。 这通常是一个简单的单行更改,具体取决于您如何连接文件。
  • 先将文件缩小,然后连接。 这应该在你连接的文件之间留下一个\ n,允许ASI为你处理这个问题。

只需添加半克隆和换行符

 ';\n' 

在每个文件的末尾