J'essaie de lancer le serveur dorsal node.js. J'ai reçu l'erreur unexpected reserved Word
lors de l'importation dans le fichier Node.js.
Les lignes du fichier core.module.js
sont:
'use strict';
import lodashMixins from './lodashMixins.js'
... other imports and configurations ...
Je lance une commande simple: node core.module.js
Ce n'est pas une erreur rare, mais cela se produit généralement avec d'autres bibliothèques. Je n'ai pas vu de solution pour Node.js. Comment dois-je résoudre ce problème? J'utilise Windows Server.
Edit: J'ai découvert qu'il s'agissait d'ES6, mais comment pourrais-je le lancer? Cela ressemble à du backend pour l'application, mais je n'ai aucune idée de la commande à utiliser pour le lancer sans erreur.
Le mot clé import
fait partie de les modules figurent dans ECMAScript 2015 , avec export
et quelques autres spécifications.
Il n'est actuellement pas implémenté de manière native dans NodeJS, même sur la dernière version (v0.12.7), ni pris en charge dans les iojs les plus conviviaux de l'ES2015.
Vous devrez utiliser un transpiler pour que cela fonctionne.
[edit] il n'est toujours pas supporté dans la dernière version (v5.8) malgré l'existence d'un drapeau --harmony_modules
, qui ne fait rien . Votre meilleure course consiste à utiliser babel, comme expliqué ici et ici
import
fait partie de ECMAScript 2015 (ES6) standard
et, comme Amit
mentionné ci-dessus, il n'est actuellement pas implémenté de manière native dans Nodejs.
Vous pouvez donc utiliser transpiler comme babel
pour exécuter votre script es6
npm install babel
Un exemple basé sur ceci réponse
app.js
import {helloworld,printName} from './es6'
helloworld();
printName("John");
es6.js
module.exports = {
helloworld: function() { console.log('hello world!'); },
printName: function(name) { console.log(name); }
}
Et en utilisant require hook
dans start.js
require("babel/register");
var app = require("./app.js");
Et lancez votre application en tant que
node start.js
EDIT La réponse ci-dessus était basée sur babel v5.8.23
. Pour babel >= v6
Utilisez require hook
dans start.js en tant que
require('babel-core/register');
require("./app.js");
De plus, les transformations ne sont pas activées par défaut. Vous devrez donc installer un preset
. Dans ce cas, utilisez es2015
npm install babel-preset-es2015
Et utilisez-le dans un fichier .babelrc
dans le dossier racine
{
"presets": ["es2015"]
}
J'ai rencontré ce problème alors que j'installais manuellement l'un de ces outils en dehors de Visual Studio. Mais Visual Studio est fourni avec plusieurs outils de ligne de commande open source utilisés dans les flux de travaux de développement Web modernes. Voici comment vous pouvez dire à Visual Studio d’utiliser la même version que celle que vous avez installée manuellement.
Allez dans Outils -> Options -> Projets et solutions -> Outils Web externes
ou