Les solutions proposées dans d'autres questions connexes, telles que l'inclusion des préréglages appropriés (es2015) dans .babelrc, sont déjà implémentées dans mon projet.
J'ai deux projets (appelons-les A et B) qui utilisent tous deux la syntaxe du module ES6. Dans le projet A, j'importe le projet B qui est installé via npm et se trouve dans le dossier node_modules. Lorsque j'exécute ma suite de tests pour le projet A, j'obtiens l'erreur:
SyntaxError: importation de jeton inattendue
Qui est précédé de cette prétendue ligne de code erronée du projet B:
(function (exports, require, module, __filename, __dirname) {import createBrowserHistory de 'history / lib / createBrowserHistory';
L'iife semble être quelque chose de npm ou peut-être lié à babel puisque mon fichier source contient uniquement "import createBrowserHistory de 'history / lib / createBrowserHistory'; Les tests unitaires de la suite de tests du projet B fonctionnent correctement, et si je supprime le projet B en tant que dépendance de Projet A, ma suite de tests (utilisant toujours les importations es6 pour les modules de projet internes) fonctionne très bien.
Trace complète de la pile:
SyntaxError: Unexpected token import
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Module._extensions..js (module.js:405:10)
at Object.require.extensions.(anonymous function) [as .js] (/ProjectA/node_modules/babel-register/lib/node.js:138:7)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (actionCreators.js:4:17)
at Module._compile (module.js:398:26)
at loader (/ProjectA/node_modules/babel-register/lib/node.js:130:5)
at Object.require.extensions.(anonymous function) [as .js] (/ProjectA/node_modules/babel-register/lib/node.js:140:7)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/ProjectA/src/components/core/wrapper/wrapper.js:28:23)
at Module._compile (module.js:398:26)
at loader (/ProjectA/node_modules/babel-register/lib/node.js:130:5)
at Object.require.extensions.(anonymous function) [as .js] (/ProjectA/node_modules/babel-register/lib/node.js:140:7)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/ProjectA/src/components/core/wrapper/wrapperSpec.js:15:16)
at Module._compile (module.js:398:26)
at loader (/ProjectA/node_modules/babel-register/lib/node.js:130:5)
at Object.require.extensions.(anonymous function) [as .js] (/ProjectA/node_modules/babel-register/lib/node.js:140:7)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at /ProjectA/node_modules/mocha/lib/mocha.js:219:27
at Array.forEach (native)
at Mocha.loadFiles (/ProjectA/node_modules/mocha/lib/mocha.js:216:14)
at Mocha.run (/ProjectA/node_modules/mocha/lib/mocha.js:468:10)
at Object.<anonymous> (/ProjectA/node_modules/mocha/bin/_mocha:403:18)
at Module._compile (module.js:398:26)
at Object.Module._extensions..js (module.js:405:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:430:10)
at startup (node.js:141:18)
at node.js:980:3
Voici ma commande de test de package.json:
"test": "mocha --compilers js:babel-core/register '+(test|src)/**/*Spec.js'"
Ce post StackOverflow est similaire mais n'offre pas de solution pour mon utilisation de la ligne de commande: importer un module de node_modules avec babel mais a échoué