Node.js - SyntaxError: Uventet token import
Jeg forstår ikke, hvad der er galt. Node v5.6.0 NPM v3.10.6
Koden:
function (exports, require, module, __filename, __dirname) {
import express from 'express'
};
Fejlen:
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
388
3
Opdatering 3: Siden Node 13 kan du enten bruge .mjs-udvidelsen eller indstille "type";: "module" i din package.json. Du du behøver ikke at bruge
--experimental-modules
-flaget.Ajourføring 2: Siden Node 12 kan du enten bruge udvidelsen
.mjs
eller angive"type";: "module"
i din package.json. Og du skal køre node med--experimental-modules
-flaget.opdatering: I Node 9 er det aktiveret bag et flag og bruger udvidelsen
.mjs
.Selv om
import
er en del af ES6, er det desværre endnu ikke understøttet i NodeJS som standard, og det er først for nylig blevet understøttet i browsere.Se browser compat table on MDN og this Node issue.
Fra James M Snell's Update on ES6 Modules in Node.js (februar 2017):
Vi har i øjeblikket udsigt til omkring et år mindst.
Indtil understøttelse dukker op nativt, skal du fortsætte med at bruge klassiske
require
-statements:Hvis du virkelig ønsker at bruge nye ES6/7-funktioner i NodeJS, kan du kompilere det ved hjælp af Babel. Her er en eksempelserver.
Desværre understøtter Node.js endnu ikke ES6's
import
.For at opnå det, du forsøger at gøre (importere Express-modulet), bør denne kode være tilstrækkelig til at opnå det, du forsøger at gøre (importere Express-modulet)
Du skal også sikre dig, at du har Express installeret ved at køre
Se Node.js Docs for flere oplysninger om at lære Node.js at kende.
Fejl: SyntaxError: Uventet token import eller SyntaxError: uventet token export
Løsning: Ændre alle dine importer som eksempel
Og ændre også din
export default = foo;
tilmodule.exports = foo;