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.
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"
}
}