Ответ 1
Скорее всего, одному из ваших js файлов в конце не хватает ;
. Откройте тот, который, по вашему мнению, вызывает ошибку, и добавьте ;
в конец или добавьте ;
в первую строку следующего js файла.
У меня есть несколько файлов lib в файле index.html, которые загружаются в правильной последовательности для приложения, которое я запускаю.
<!-- 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 с нулевой модификацией в той же последовательности, что указан выше. Это работает, пока я не доберусь до момента. Когда я вставляю это и запускаю его, я получаю ошибку JS.
TypeError: (intermediate value)(...) is not a function
Я не получаю то, что мне не хватает - если я вставляю их в нужную последовательность, когда они синхронизируются, загружается в файл HTML, в чем разница?
Скорее всего, одному из ваших js файлов в конце не хватает ;
. Откройте тот, который, по вашему мнению, вызывает ошибку, и добавьте ;
в конец или добавьте ;
в первую строку следующего js файла.
Изменение кода javascript не устраняет основную причину проблемы, так что это может случиться снова, как только вы введете новый файл JavaScript.
У вас есть по крайней мере несколько вариантов для постоянного исправления - они связаны с изменением сборки, чтобы это не могло произойти в будущем, даже если отсутствует точка с запятой:
;
между файлами, которые вы объединяете. Обычно это простое однострочное изменение в зависимости от того, как вы объединяете файлы.просто добавьте полу-клон и новую строку
';\n'
в конце каждого файла