0

J'utilise Browserify à transpile mon code JS pour vérifier que le code final est compatible avec la plupart des navigateurs, et tout fonctionne parfaitement avec Chrome et Firefox.erreur « SCRIPT 1028 identifiant attendu, chaîne ou un nombre » avec IE11

Mais j'utilise un paquet (dot-prop) qui IE11 ne semble pas aimer en raison du nom de certaines fonctions comme get dans get(obj, path, value) (https://github.com/sindresorhus/dot-prop/blob/master/index.js) et générer l'erreur classique:

SCRIPT 1028 Expected identifier, string or number 

Pourtant, je suis sur un tas de outils transpilation:

browserify --extension=.jsx --transform [babelify --presets=es2015,stage-2,react --plugins=[babel-plugin-transform-es3-member-expression-literals,babel-plugin-transform-es3-property-literals]] --transform [es3ify] GUI/index.jsx --outfile dist/GUI/bundle.js 

Mais pour autant que j'understan d les outils considèrent le code comme valide, ce qui est vrai pour la plupart des navigateurs.

Je manque probablement un composant de transpilation qui pourrait transformer le get(...) en quelque chose comme "get": function(...).

Ai-je raté quelque chose?

Si le problème est réel, peut-il être résolu avec un tel composant? Ou devrais-je corriger le code moi-même, et si oui, quelle est la meilleure façon de le faire?

Répondre

0

La question est plus subtile: comme dot-prop est une dépendance stockée dans node_modules par défaut, il est ignoré par Browserify donc pas passé à Babel par Babelify pour transpilation. Jusqu'à ce que je trouve une façon propre de demander à Browerify de gérer uniquement cette dépendance, j'ai trouvé une solution de contournement simple: pré-génération d'une version transpillée de la dépendance.

J'ai un script dédié NPM dans mon package.json:

"scripts": { 
    "precompile": "babel node_modules/dot-prop/index.js --out-file precompiled/dot-prop.js", 

Et je référence le module transpiled résultant à la place de l'original.

par exemple. en someModule.js:

const dotProp = require("../precompiled/dot-prop"); 

Espérons que cela va aider quelqu'un d'autre. :-)