Node.js - SyntaxError: Onverwachte token import

Ik begrijp niet wat er mis is. Node v5.6.0 NPM v3.10.6

De code:

function (exports, require, module, __filename, __dirname) {
    import express from 'express'
};

De fout:

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
Oplossing

Update 3: Sinds Node 13, kun je ofwel de .mjs extensie gebruiken, of "type": "module" instellen in je package.json. Je hoeft niet de --experimentele-modules vlag te gebruiken.

Update 2: Sinds Node 12, kun je ofwel de .mjs extensie gebruiken, of "type": "module" instellen in je package.json. En je moet node draaien met de --experimentele-modules vlag.

Update: In Node 9, is het ingeschakeld achter een vlag, en gebruikt de .mjs extensie.

node --experimental-modules my-app.mjs

Hoewel import inderdaad deel uitmaakt van ES6, wordt het helaas nog niet standaard ondersteund in NodeJS, en heeft het pas zeer recent ondersteuning gekregen in browsers.

Zie browser compat tabel op MDN en dit Node probleem.

Uit James M Snell's Update on ES6 Modules in Node.js (februari 2017):

Er wordt aan gewerkt, maar het gaat enige tijd duren - We kijken momenteel naar ongeveer een jaar op zijn minst.

Totdat ondersteuning natively verschijnt, zul je'moeten blijven gebruiken klassieke require statements:

const express = require("express");

Als je echt nieuwe ES6/7 functies in NodeJS wilt gebruiken, kun je het compileren met behulp van Babel. Hier's een voorbeeld server.

Commentaren (11)

Helaas, Node.js ondersteunt ES6's import nog niet.

Om te bereiken wat u'probeert te doen (de Express module importeren), zou deze code moeten volstaan

var express = require("express");

Wees er ook zeker van dat je Express geïnstalleerd hebt door

$ npm install express

Zie de Node.js Docs voor meer informatie over het leren van Node.js.

Commentaren (5)

Error: SyntaxError: Onverwachte token import of SyntaxError: Onverwachte token export


Oplossing: Wijzig al uw imports zoals voorbeeld

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

En verander ook je export default = foo; in module.exports = foo;

Commentaren (2)