No entiendo lo que está mal. Node v5.6.0 NPM v3.10.6
El código:
function (exports, require, module, __filename, __dirname) {
import express from 'express'
};
El error:
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
Actualización 3: Desde Node 13, puedes usar la extensión .mjs, o establecer "type": "module" en tu package.json. No es necesario utilizar la bandera --experimental-modules
.
Actualización 2: Desde Node 12, puedes usar la extensión .mjs
, o establecer "type": "module"en tu package.json. Y necesitas ejecutar node con la bandera
--experimental-modules`.
Actualización: En Node 9, está habilitado tras una bandera, y utiliza la extensión .mjs
.
node --experimental-modules my-app.mjs
Aunque import
es de hecho parte de ES6, desafortunadamente todavía no está soportado en NodeJS por defecto, y sólo muy recientemente ha aterrizado el soporte en los navegadores.
Ver tabla de compatibilidad con navegadores en MDN y este tema de Node.
De James M Snell's Update on ES6 Modules in Node.js (febrero de 2017):
El trabajo está en progreso, pero va a tomar algún tiempo - Actualmente estamos viendo alrededor de un año por lo menos.
Hasta que el soporte aparezca de forma nativa, tendrás que seguir usando las clásicas sentencias require
:
const express = require("express");
Si realmente quieres usar las nuevas características de ES6/7 en NodeJS, puedes compilarlo usando Babel. Aquí'hay un servidor de ejemplo.
Lamentablemente, Node.js no soporta todavía la función import
de ES6.
Para lograr lo que estás tratando de hacer (importar el módulo Express), este código debería ser suficiente
var express = require("express");
Además, asegúrate de tener instalado Express ejecutando
$ npm install express
Consulte los Node.js Docs para obtener más información sobre el aprendizaje de Node.js.
Error: SyntaxError: Token inesperado import o SyntaxError: Token inesperado export
Solución: Cambia todas tus importaciones como en el ejemplo
begin snippet: js hide: false console: true babel: false -->
const express = require('express');
const webpack = require('webpack');
const path = require('path');
const config = require('../webpack.config.dev');
const open = require('open');
Y también cambia tu exportación por defecto = foo;
por module.exports = foo;