Bonjour quand je lance ce projet en mode développeur (serveur grunt) https://github.com/kennethlynne/generator-angular-xl tout va bien mais quand je le lance en mode production (build grunt) Je reçois un `
SyntaxError non capturée: en code de mode strict, les fonctions ne peuvent être déclarées qu'au niveau supérieur ou immédiatement dans une autre fonction
Quelqu'un a une idée de ce qui se passe? Merci,
Ps. J'ai posté un lien vers le projet au lieu du code car le JS est divisé en plusieurs fichiers.
J'ai résolu le problème en supprimant le 'use strict'
qui était au-dessus du jquery dans le script minifié final. Une autre façon peut être de changer la version de jQuery en une seule sans le bug strict
EDIT: Après tout, c'était une erreur de minification jQuery sur la version 1.11, et une solution facile pour cela est d'aller dans votre fichier Grunt et de commenter la ligne
banner: "'use strict';\n"
C'est exactement ce que dit le message d'erreur:
les fonctions ne peuvent être déclarées qu'au niveau supérieur ou immédiatement dans une autre fonction
Vous ne devez pas mettre une déclaration de fonction à l'intérieur de tout autre bloc, comme une instruction if ou for-loop.
Exemple:
'use strict';
function some() {
function okay() {
}
let x = 1;
function no_problem() {
}
if (x == 1) {
function BOOM() { // <- wrong!
}
}
}
Comme quelqu'un l'a suggéré ci-dessus, vous pouvez décommenter le 'use strict';
partie, ou mieux encore, changez la syntaxe de votre fonction
au lieu de
function funcName (param) { }
utilisation
funcName = function(param) {};
En plus des bonnes réponses, cela pourrait être également un bogue dans FireFox dans certains scénarios spécifiques.
Nous avons eu ce message d'erreur sur la machine d'un seul utilisateur. Dans le fichier JavaScript, il y avait un use strict
ligne ci-dessous la méthode qui a généré cette erreur (qui ne devrait pas être affectée par cela)
Il se trouve que c'était un problème avec la version 45.9.0 de FireFox (et peut-être aussi avec les anciennes versions). La mise à jour de Firefox vers la version la plus récente (actuellement 52.4) a résolu le problème.