我在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
我没有得到我所缺少的东西 - 如果我在HTML文件中同步加载它们时按正确的顺序粘贴它们,有什么区别?
答案 0 :(得分:105)
最有可能你的一个js文件最后缺少;
。打开你认为导致错误的那个并在最后添加;
,或者将;
添加到下一个js文件的第一行。
答案 1 :(得分:2)
修改javascript代码并不能解决问题的根本原因,因此只要引入新的JavaScript文件,就会再次发生这种情况。
你有至少很少的永久性修复选择 - 它们涉及改变构建,以便将来不会发生这种情况,即使缺少分号:
;
。这通常是一个简单的单行更改,具体取决于您如何连接文件。答案 2 :(得分:2)
只需添加半克隆和换行符
';\n'
在每个文件的末尾