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
Løsning

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.

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

const express = require("express");

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.

Kommentarer (11)

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)

var express = require("express");

Du skal også sikre dig, at du har Express installeret ved at køre

$ npm install express

Se Node.js Docs for flere oplysninger om at lære Node.js at kende.

Kommentarer (5)

Fejl: SyntaxError: Uventet token import eller SyntaxError: uventet token export


Løsning: Ændre alle dine importer som eksempel

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

Og ændre også din export default = foo; til module.exports = foo;

Kommentarer (2)