J'essaie de faire fonctionner Babel à travers sa CLI en utilisant babel-node
mais je continue à avoir l'erreur Unexpected token export
. Je comprends que Babel 6 ne concerne que les plugins et que je dois le configurer via .babelrc
, mais cela ne semble pas fonctionner correctement.
Donc, voici mes questions:
package.json
mais toujours pas de chance. .babelrc
? Cela semble fastidieux de devoir installer les plugins pour chaque projet le nécessitant ...Pour ceux qui sont curieux de savoir ce que j'essaie d'exporter, voici le cours:
'use strict';
class Factorial {
static solve (num) {
if(num === 0) return 1;
else return num * Factorial.solve(num - 1);
}
}
console.log(Factorial.solve(5))
export default Factorial;
Le moyen le plus simple de commencer est d’utiliser un preset .
Commençons par installer nos dépendances:
$ npm install --save-dev babel-cli babel-preset-es2015
Ajoutez ensuite un script build
à votre package.json qui exécute Babel: (cela est important car il utilisera votre version locale de babel-cli
au lieu d'une version installée globalement)
"build": "babel input.js"
Votre package.json
devrait ressembler à ceci:
{
"name": "my-module",
"devDependencies": {
"babel-cli": "^6.x.x",
"babel-preset-es2015": "^6.x.x"
},
"scripts": {
"build": "babel input.js -o compiled.js"
}
}
Enfin, vous voulez mettre à jour votre .babelrc
local comme ceci:
{
"presets": ["es2015"]
}
Ensuite, vous exécutez npm run build
et vous êtes prêt à partir.
De plus, la CLI de Babel 6 dispose-t-elle d'une option globale .babelrc? Cela semble fastidieux de devoir installer les plugins pour chaque projet le nécessitant ...
C'est une mauvaise idée car cela signifie que vous ne pouvez jamais le mettre à jour sans mettre à jour chacun des codes de vos projets. Avoir des versions locales signifie que cette erreur potentielle est moins susceptible de se produire.
J'ai reçu la même erreur, mais mes configurations Webpack/babel semblaient correctes. Par essais et erreurs, j'ai remplacé export myFunction
par export default myFunction
et l'erreur a été résolue.
Plus tard, j'ai réalisé que la manière correcte d'exporter était export {myFunction}
. Je l'ai mis en œuvre et tout fonctionne bien.