Node.js - SyntaxError: Unexpected token import
Ne razumem, kaj je narobe. Vozlišče v5.6.0 NPM v3.10.6
Koda:
function (exports, require, module, __filename, __dirname) {
import express from 'express'
};
Napaka:
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
Update 3: Od Node 13 lahko uporabite razširitev .mjs ali pa v svojem package.json nastavite "type": "module". Ni vam treba uporabiti oznake
--experimental-modules
.Posodobitev 2: Od Node 12 lahko uporabite razširitev
.mjs
ali pa v svojem package.json nastavite"type": "module"
. Vozlišče pa morate zagnati z zastavico--eksperimentalni-moduli
.Posodobitev: V Node 9 je omogočena z zastavico in uporablja razširitev
.mjs
.Čeprav je
import
res del ES6, žal v NodeJS privzeto še ni podprt, v brskalnikih pa je bil podprt šele pred kratkim.Oglejte si tabelo skladnosti z brskalniki na MDN in to vprašanje Node.
Iz članka Jamesa M. Snella Update on ES6 Modules in Node.js (februar 2017):
Delo poteka, vendar bo trajalo nekaj časa - trenutno predvidevamo, da bo trajalo vsaj eno leto.
Dokler se podpora ne bo pojavila nativno, boste morali še naprej uporabljati klasične stavke
require
:Če res želite uporabljati nove funkcije ES6/7 v NodeJS, ga lahko sestavite s programom Babel. Tukaj je primer strežnika.
Na žalost Node.js še ne podpira `importa´ ES6.
Za to, kar želite storiti (uvoziti modul Express), bi morala zadostovati ta koda
Prav tako se prepričajte, da imate nameščen Express, tako da zaženete
Za več informacij o učenju Node.js glejte Dokumente Node.js.
Napaka: SyntaxError: SyntaxError: Nepričakovani žeton import ali SyntaxError: Nepričakovani žeton izvoz
Rešitev: Spremenite vse uvoze, kot je primer
Prav tako spremenite svoje
export default = foo;
vmodule.exports = foo;