Nie rozumiem, co jest nie tak. Node v5.6.0 NPM v3.10.6
Kod:
function (exports, require, module, __filename, __dirname) {
import express from 'express'
};
Błąd:
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
Uaktualnienie 3: Od Node 13, możesz użyć rozszerzenia .mjs, lub ustawić "type": "module" w swoim package.json. Nie musisz** używać flagi --experimental-modules
.
Uaktualnienie 2: Od Node 12, możesz użyć albo rozszerzenia .mjs
, albo ustawić "type": "module"
w swoim package.json. I musisz uruchomić node z flagą --experimental-modules
.
Uaktualnienie: W Node 9, jest to włączone za pomocą flagi i używa rozszerzenia .mjs
.
node --experimental-modules my-app.mjs
Podczas gdy import
jest rzeczywiście częścią ES6, niestety nie jest jeszcze domyślnie obsługiwany w NodeJS, a dopiero niedawno wylądował w przeglądarkach.
Zobacz tabela kompatybilności przeglądarek na MDN i ten problem z Node.
Z James M Snell's Update on ES6 Modules in Node.js (luty 2017):
Prace są w toku, ale zajmie to trochę czasu - Obecnie patrzymy na około rok co najmniej.
Dopóki wsparcie nie pojawi się natywnie, będziesz musiał kontynuować korzystanie z klasycznych require
oświadczeń:
const express = require("express");
Jeśli naprawdę chcesz użyć nowych funkcji ES6/7 w NodeJS, możesz skompilować go używając Babel. Tutaj'jest przykładowy serwer.
Niestety, Node.js nie obsługuje jeszcze importu
ES6'.
Aby osiągnąć to, co próbujesz zrobić (zaimportować moduł Express), ten kod powinien wystarczyć
var express = require("express");
Upewnij się także, że masz zainstalowany Express, uruchamiając
$ npm install express
Zobacz Node.js Docs aby uzyskać więcej informacji na temat nauki Node.js.
Error: SyntaxError: Nieoczekiwany token import lub SyntaxError: Unexpected token export.
Rozwiązanie: Zmień wszystkie swoje importy tak, jak na przykład
const express = require('express');
const webpack = require('webpack');
const path = require('path');
const config = require('../webpack.config.dev');
const open = require('open');
A także zmień swój export default = foo;
na module.exports = foo;
.