SyntaxError: Using //@ to indicate sourceURL pragmas is deprecated. Use //# instead
Message
Warning: SyntaxError: Using //@ to indicate sourceURL pragmas is deprecated. Use //# instead Warning: SyntaxError: Using //@ to indicate sourceMappingURL pragmas is deprecated. Use //# instead
Type d'erreur
Un avertissement prenant la forme d'une exception SyntaxError
. L'exécution du code JavaScript n'est pas interrompue.
Quel est le problème ?
Une syntaxe dépréciée a été utilisée pour indiquer une correspondance de source (source map) dans le code JavaScript.
Il arrive souvent que les fichiers sources JavaScript soient combinés et minifiés afin que le transfert depuis le serveur vers le client soit plus efficace. Grâce aux correspondances de source (ou source maps), le débogueur peut utiliser les sources des fichiers correspondants aux fichiers minifiés.
La spécification sur cet outil a évolué car il existait un conflit de syntaxe avec IE (après //@cc_on
, la correspondance était interprétée comme un test conditionnel de compilation du moteur JScript). Ce commentaire de compilation conditionnelle pour IE est peu connu mais son existence entraînait des erreurs avec jQuery et d'autres bibliothèques.
Exemples
Syntaxe dépréciée
La syntaxe utilisant l'arobase (@) est dépréciée :
//@ sourceMappingURL=http://exemple.com/chemin/vers/la/sourcemap.map
Syntaxe standard
Il faut utiliser le dièse (#) :
//# sourceMappingURL=http://exemple.com/chemin/vers/la/sourcemap.map
Autrement, on peut indiquer la correspondance dans un en-tête SourceMap
pour servir le fichier JavaScript afin d'éviter tout commentaire :
X-SourceMap: /path/to/file.js.map