web-dev-qa-db-fra.com

Exécution de tests MOCHA 6 ES6 avec Babel 7, comment mettre en place?

Pour une bibliothèque écrite dans ES6/7, je souhaite compiler (à ES5) la bibliothèque à un dist/dossier. Je veux aussi exécuter les tests (écrit dans ES6/7) pour cette lib.

Mes dépendances de développement ressemblent à ceci (paquet.json):

"devDependencies": {
  "@babel/cli": "^7.4.4",
  "@babel/core": "^7.4.5",
  "@babel/preset-env": "^7.4.5",
  "@babel/register": "^7.4.4",
  "chai": "^4.2.0",
  "mocha": "^6.1.4",
  "sinon": "^7.3.2"
},

Mes scripts de construction et de test ressemblent à ceci (paquet.json):

"scripts": {
  "test": "mocha --require @babel/register",
  "build": "babel src -d dist --presets=@babel/preset-env"
},

En cours npm run build fonctionne bien. Le dist/dossier est renseigné avec des fichiers transpilés.

En cours npm run test ne semble pas fonctionner - c'est mon problème.

> mocha --require @babel/register

/Users/dro/Repos/lib/node_modules/yargs/yargs.js:1163
      else throw err
           ^

ReferenceError: regeneratorRuntime is not defined

Initialement, j'ai eu une erreur d'importation, qui a été résolue en ajoutant un fichier .babelrc.

Ci-dessous est mon contenu de fichier .belrc.

{
  "presets": ["@babel/preset-env"]
}

Je lisais à propos de regeneratorRuntime et cela m'a eu à - ce lien à propos de Babel-Polyfill où ils expliquent que je n'aurais pas besoin de ce polyfill.

Cela imitera un environnement complet ES2015 + (NO <Stage 4 propositions) et est destiné à être utilisé dans une application plutôt qu'une bibliothèque/outil.

Quel est nécessaire pour la configurer correctement?


Je n'utilise pas Webpack.

6
miphe

Regardez la Documentation du projet :

npm install --save-dev babel-register

Dans votre fichier package.json, apportez les modifications suivantes:

{
  "scripts": {
    "test": "mocha --require babel-register"
  }
}

Certaines fonctionnalités nécessiteront un polyfill:

npm install --save-dev babel-polyfill
{
  "scripts": {
    "test": "mocha --require babel-polyfill --require babel-register"
  }
}
3
ET-CS