Не разбирам какво не е наред. Node v5.6.0 NPM v3.10.6
Кодът:
function (exports, require, module, __filename, __dirname) {
import express from 'express'
};
Грешката:
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
Актуализация 3: От Node 13 насам можете да използвате разширението .mjs или да зададете "type": "module" във вашия package.json. Не е необходимо да използвате флага --experimental-modules
.
Актуализация 2: От Node 12 насам можете да използвате разширението .mjs
или да зададете "type": "module"
във вашия package.json. И трябва да стартирате node с флага --experimental-modules
.
Актуализация: В Node 9 това е разрешено с флаг и се използва разширението .mjs
.
node --experimental-modules my-app.mjs
Макар че import
наистина е част от ES6, за съжаление все още не се поддържа в NodeJS по подразбиране, а съвсем наскоро започна да се поддържа и в браузърите.
Вижте таблицата за съвместимост с браузърите в MDN и този въпрос на Node.
От James M Snell's Update on ES6 Modules in Node.js (февруари 2017 г.):
Работата е в ход, но ще отнеме известно време - в момента смятаме, че ще отнеме поне около година.
Докато не се появи поддръжка в естествен вид, ще трябва да продължите да използвате класическите require
оператори:
const express = require("express");
Ако наистина искате да използвате новите функции на ES6/7 в NodeJS, можете да го компилирате с помощта на Babel. Ето един примерен сървър.
За съжаление Node.js все още не поддържа импорт
на ES6.
За да постигнете това, което се опитвате да направите (да импортирате модула Express), този код би трябвало да е достатъчен
var express = require("express");
Също така се уверете, че имате инсталиран Express, като стартирате
$ npm install express
Вижте Node.js Docs за повече информация относно изучаването на Node.js.
Error: SyntaxError: или SyntaxError: Неочакван символ import или SyntaxError: Неочакван символ експорт
Решение: Променете всички ваши импорти, както в примера
const express = require('express');
const webpack = require('webpack');
const path = require('path');
const config = require('../webpack.config.dev');
const open = require('open');
И също така променете вашето export default = foo;
на module.exports = foo;