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
Rešitev

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.

node --experimental-modules my-app.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:

const express = require("express");

Če res želite uporabljati nove funkcije ES6/7 v NodeJS, ga lahko sestavite s programom Babel. Tukaj je primer strežnika.

Komentarji (11)

Na žalost Node.js še ne podpira `importa´ ES6.

Za to, kar želite storiti (uvoziti modul Express), bi morala zadostovati ta koda

var express = require("express");

Prav tako se prepričajte, da imate nameščen Express, tako da zaženete

$ npm install express

Za več informacij o učenju Node.js glejte Dokumente Node.js.

Komentarji (5)

Napaka: SyntaxError: SyntaxError: Nepričakovani žeton import ali SyntaxError: Nepričakovani žeton izvoz


Rešitev: Spremenite vse uvoze, kot je primer

const express               = require('express');
const webpack               = require('webpack');
const path              = require('path');
const config                = require('../webpack.config.dev');
const open              = require('open');

Prav tako spremenite svoje export default = foo; v module.exports = foo;

Komentarji (2)