Node.js – SyntaxError: Importação de token inesperado

Eu não entendo o que está errado. Nó v5.6.0 NPM v3.10.6

Meu código:

(function (exports, require, module, __filename, __dirname) { import express from 'express'; 

Erro:

 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:140:18) at node.js:1001:3 

Atualização: no Nó 9 , ela é ativada por trás de um sinalizador e usa a extensão .mjs .

 node --experimental-modules my-app.mjs 

Embora a import seja, de fato, parte do ES6, infelizmente ainda não é suportada no NodeJS, e só recentemente recebeu suporte em navegadores.

Veja a tabela compat do navegador em MDN e este problema do nó .

De Atualização de James M Snell sobre Módulos ES6 em Node.js (fevereiro de 2017):

O trabalho está em andamento, mas vai levar algum tempo. No momento, estamos analisando pelo menos um ano.

Até que o suporte apareça de forma nativa, você terá que continuar usando as instruções clássicas require :

 const express = require("express"); 

Se você realmente quer usar os novos resources do ES6 / 7 no NodeJS, você pode compilá-lo usando o Babel. Aqui está um exemplo de servidor .

Infelizmente, o Node.js ainda não suporta a import do ES6.

Para realizar o que você está tentando fazer (importar o módulo Express), esse código deve ser suficiente

 var express = require("express"); 

Além disso, certifique-se de ter o Express instalado, executando

 $ npm install express 

Consulte o documento Node.js para obter mais informações sobre o aprendizado do Node.js.

Erro: SyntaxError: importação inesperada de token ou SyntaxError: exportação inesperada de token


Solução: altere todas as suas importações como exemplo

 const express = require('express'); const webpack = require('webpack'); const path = require('path'); const config = require('../webpack.config.dev'); const open = require('open'); 

Se você puder usar ‘babel’, tente adicionar scripts de construção em package.json (- presets = es2015) como abaixo. faz pré-compilar o código de importação para es2015

 "build": "babel server --out-dir build --presets=es2015 && webpack"