J'ai plusieurs fichiers lib dans un fichier index.html, qui sont chargés dans l'ordre approprié pour une application que j'exécute.
<!-- 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>
Ceux-ci fonctionnent bien, ils sont déjà tous minifiés.
Maintenant, je veux les combiner en un seul fichier pour la vitesse de chargement:
<script src="/./sys/lib/libs.all.js"></script>
J'ouvre donc le nouveau libs.all.js
fichier, et un par un, collez-y les fichiers .js minifiés, avec zéro modification, dans le exactement la même séquence comme indiqué ci-dessus. Cela fonctionne jusqu'à ce que j'arrive à moment.js. Lorsque je le colle puis l'exécute, j'obtiens une erreur JS.
TypeError: (intermediate value)(...) is not a function
Je n'obtiens pas ce qui me manque - si je les colle dans le bon ordre pendant qu'ils se synchronisent chargés dans le fichier HTML, quelle est la différence?
Il est très probable que l'un de vos fichiers js manque un ;
à la fin. Ouvrez celui que vous pensez être à l'origine de l'erreur et ajoutez un ;
à la fin, ou ajoutez un ;
à la toute première ligne du fichier js suivant.
il suffit d'ajouter un semi-clone et une nouvelle ligne
';\n'
à la fin de chaque fichier
La modification du code javascript ne résout pas la cause première du problème, cela peut donc se reproduire dès que vous introduisez un nouveau fichier JavaScript.
Vous avez au moins peu de choix pour un correctif permanent - ils impliquent de changer la construction afin que cela ne puisse pas se produire à l'avenir, même si un point-virgule est manquant:
;
entre les fichiers que vous concaténez. Il s'agit généralement d'un simple changement d'une ligne selon la façon dont vous concaténez les fichiers.