Actuellement, mon projet est basé sur feather-cli et j'ai besoin d'utiliser le module d'importation et d'exportation au lieu de require
Mais j'ai eu l'erreur SyntaxError: Unexpected token export
lorsque j'essaie d'utiliser l'importation, l'exportation.
J'ai vu un problème qui faisait que la plume redevenait commonjs.
Je comprends après https://github.com/feathersjs/feathers/issues/608 approuver et fusionner, je peux utiliser l'importation, l'exportation sans erreur.
Donc ma question est que puis-je faire pour utiliser l'importation et l'exportation au lieu de require
?
Vous pouvez utiliser babel-register
pour amorcer votre code pendant son exécution.
// package.json
}
"dependencies": {
"babel-preset-es2015": "^6.24.1",
"babel-register": "^6.24.1",
...
}
// .babelrc
{
"presets": ["es2015"]
}
md5-d9dbd6153ad663c52db1c46098188247
```js
// server.js < your actual code here
import express from 'express';
export const run () => {
const app = express()
......
}
Ou vous pouvez simplement transpiler le code en utilisant babel
au cas où vous ne voudriez pas utiliser babel-register
à l'exécution.
L'application générée n'utilisera toujours que ce que la dernière version de Node prend en charge (nous la mettrons probablement à jour pour utiliser async/await
pour la prochaine version). Vous pouvez trouver plus de raisons de ne pas utiliser Babel par défaut dans https://github.com/feathersjs/generator-feathers/issues/31 et une discussion dans https://github.com/feathersjs/feathers-cli/issues /91 (y compris les défis de la mise à jour de nos codemods générateurs vers la nouvelle syntaxe).
En résumé, l'utilisation de modules ES avec Babel augmentera le temps de démarrage/compilation et éventuellement la consommation de mémoire juste pour utiliser une spécification dont les détails d'implémentation (en particulier pour Node) n'ont pas été entièrement finalisés.
Si vous souhaitez toujours l'utiliser, vous pouvez probablement exécuter le code généré via un transformateur de module requis vers ES avec la configuration Babel indiquée par @zusamann .
Ce problème a été automatiquement verrouillé puisqu'il n'y a eu aucune activité récente après sa fermeture. Veuillez ouvrir un nouveau problème avec un lien vers ce problème pour les bogues associés.
Commentaire le plus utile
Vous pouvez utiliser
babel-register
pour amorcer votre code pendant son exécution.Ou vous pouvez simplement transpiler le code en utilisant
babel
au cas où vous ne voudriez pas utiliserbabel-register
à l'exécution.