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 :

js
//@ sourceMappingURL=http://exemple.com/chemin/vers/la/sourcemap.map

Syntaxe standard

Il faut utiliser le dièse (#) :

js
//# 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 :

js
X-SourceMap: /path/to/file.js.map

Voir aussi