Node.js - SyntaxError: Importação inesperada de fichas

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

O código:

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

O 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
Solução

Desde Nó 13, você pode usar ou a extensão .mjs, ou definir "type": "module" no seu pacote.json. Você don't*** precisa utilizar a bandeira `--experimental-modules'.

Atualização 2: Desde Nó 12, você pode utilizar a extensão .mjs', ou definir"type": "module"no seu pacote.json. E você precisa executar o nó com a bandeira--experimental-modules'.

Update: Em Nó 9, ele é habilitado atrás de uma bandeira, e utiliza a extensão `.mjs'.

node --experimental-modules my-app.mjs

Embora a 'importação' faça parte do ES6, infelizmente ainda não é suportada no NodeJS por padrão, e só muito recentemente aterrissou suporte em navegadores.

Veja tabela de compatibilidade do navegador no MDN e esta edição do Nó.

From James M Snell's Update on ES6 Modules in Node.js (Fevereiro 2017):

O trabalho está em andamento, mas vai levar um pouco de time - We's atualmente estão olhando para cerca de um ano, pelo menos.

Até o suporte aparecer nativamente, você'terá que continuar utilizando as clássicas declarações de require:

const express = require("express");

Se você realmente quer usar as novas funcionalidades do ES6/7 no NodeJS, você pode compilá-lo usando Babel. Aqui's um servidor de exemplo.

Comentários (11)

Infelizmente, o Node.js ainda não suporta ES6's importar.

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

var express = require("express");

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

$ npm install express

Veja o Node.js Docs para mais informações sobre o Node.js de aprendizagem.

Comentários (5)

Error: SyntaxError: Importação inesperada ou SyntaxError: Ficha inesperada exportar***


Solução: Mude 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');

E também alterar o seu export default = foo; para module.exports = foo;

Comentários (2)