web-dev-qa-db-fra.com

Erreur de noeud: SyntaxError: Importation de jeton inattendue

Je ne comprends pas ce qui ne va pas. J'ai vérifié sur un autre forum en parlant de transpilation et de babel. Que dois-je faire?

node -v
v5.5.0

mon code:

import recast from 'recastai'

et l'erreur

(function (exports, require, module, __filename, __dirname) { import recast from 'module1'
                                                              ^^^^^^

SyntaxError: Unexpected token import
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:387:25)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:139:18)
    at node.js:999:3
51
Stefdelec

Les importations ES6 sont une fonctionnalité récemment introduite et la version stable actuelle de Node ne les prend pas encore en charge. Node.js issue tracker a un numéro ouvert pour cela - mais jusqu'à ce que V8 et Node ajoutent un support pour cette fonctionnalité, vous devrez utiliser un transpiler (le plus populaire étant babel ) pour pouvoir utiliser importations.

Pour essayer rapidement la transpilation, babel fournit un REPL basé sur le Web. Celui-ci montre que votre code est transpilé.

La page d'accueil du projet babel pointe vers les ressources appropriées pour démarrer avec Babel et l'intégrer à votre processus de développement. 

Pour une configuration plus simple, visitez cette page setup et sélectionnez CLI dans la section des fonctions intégrées de Babel. 

Cela implique essentiellement trois étapes simples: 

  1. Installez babel-cli: npm install --save-dev babel-cli babel-preset-es2015
  2. Créer le fichier de configuration .babelrc: echo '{ "presets": ["es2015"] }' > .babelrc
  3. Utilisez le module installé pour transpiler votre code source: ./node_modules/.bin/babel src -d lib

La page de configuration susmentionnée montre également comment ajouter un script npm pour simplifier la dernière étape. Alternativement, vous pouvez intégrer babel à votre éditeur ou créer une chaîne afin que vos fichiers soient automatiquement compilés au changement. 

40
lorefnon

Au cas où vous ne voudriez pas vous occuper de Babel. Celui-ci a fonctionné pour moi.

const calc = require('./my_calc');
let {add, multiply} = calc;
7
mahe madhi

1) Installer les derniers préréglages

yarn add --dev babel-preset-latest

2) Créez .babelrc et ajoutez ce qui suit

{
    "presets": ["latest"]
}

3) Exécutez votre script

npx babel-node yourscript.js

Ou dans votre fichier package.json ajouter

"scripts": {
  "start": "babel-node index.js"
}
5
Jerome Anthony

C'est très simple pour résoudre ce problème, import est la syntaxe ES6 et Node a du mal à la supporter, vous devez ajouter Babel en tant que transpiler, allez à package.json et ajoutez ce qui suit

Ajoutez d’abord une balise de script à utiliser avec babel lors de l’exécution du code JS pour la transcription.

"scripts": {
    "start": "nodemon ./app.js --exec babel-node -e js"
  }

Et ajoutez ensuite ce qui suit en tant que devDependencies de Babel

"devDependencies": {
    "babel-cli": "^6.26.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1"
  }

après cela, vous devez également configurer le fichier de préconfigurations babel. Créez donc le fichier .babelrc dans le répertoire racine et définissez les préconfigurations comme suit.

{
  "presets": [
    "es2015",
    "stage-0"
  ]
}

N'oubliez pas de faire un npm install à la fin

1
Naved Ahmad

Commencer

Nous allons d'abord installer babel-cli.

$ npm install --save-dev babel-cli

Avec quelques presets.

$ npm install --save-dev babel-preset-es2015 babel-preset-stage-2

package.json:

  "scripts": {
    "start": "babel-node index.js --presets es2015,stage-2"
  }

courir:

$ npm start

Regarder les modifications de fichiers avec nodemon :

Nous pouvons améliorer notre script de démarrage npm avec nodemon.

$ npm install --save-dev nodemon

Ensuite, nous pouvons mettre à jour notre script de démarrage npm.

package.json:

 "scripts": {
   "start": "nodemon index.js --exec babel-node --presets es2015,stage-2"
  }

courir:

$ npm start 

Si vous utilisez pm2 , procédez comme suit:

$ pm2 start app.js --interpreter babel-node
0
KARTHIKEYAN.A

Grâce à une proposition d'amélioration de NodeJS nous avons un chemin à parcourir Vous pouvez utiliser @standard-things/esm

Trouvez l'annonce ici Simplement lancer 

npm i --save @std/esm

Dans votre emballé aujourd'hui.

0
Evan Carroll