Node.js - SyntaxError: Beklenmeyen token içe aktarımı

Neyin yanlış olduğunu anlamıyorum. Node v5.6.0 NPM v3.10.6

Kod:

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

Hata:

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
Çözüm

Güncelleme 3: Node 13'den bu yana, .mjs uzantısını kullanabilir veya package.json dosyanızda "type": "module" ayarını yapabilirsiniz. Deneysel-modüller bayrağını kullanmanıza **gerek yoktur.

Güncelleme 2: Node 12'dan bu yana, .mjs uzantısını kullanabilir veya package.json dosyanızda "type": "module" ayarını yapabilirsiniz. Ve node'u --experimental-modules bayrağı ile çalıştırmanız gerekir.

Güncelleme: Node 9'de, bir bayrağın arkasında etkinleştirilir ve .mjs uzantısını kullanır.

node --experimental-modules my-app.mjs

import` gerçekten ES6'nın bir parçası olsa da, ne yazık ki NodeJS'de varsayılan olarak henüz desteklenmemektedir ve tarayıcılarda çok yakın zamanda desteklenmiştir.

MDN'deki tarayıcı uyum tablosu ve bu Node sorunu bölümlerine bakın.

James M Snell'in Update on ES6 Modules in Node.js (Şubat 2017) başlıklı yazısından:

Çalışmalar devam ediyor ancak biraz zaman alacak - Şu anda en az bir yıla bakıyoruz.

Destek yerel olarak ortaya çıkana kadar, klasik require ifadelerini kullanmaya devam etmeniz gerekecek:

const express = require("express");

NodeJS'deki yeni ES6/7 özelliklerini gerçekten kullanmak istiyorsanız, Babel kullanarak derleyebilirsiniz. İşte örnek bir sunucu.

Yorumlar (11)

Ne yazık ki, Node.js henüz ES6'nın import özelliğini desteklemiyor.

Yapmaya çalıştığınız şeyi başarmak için (Express modülünü içe aktarmak), bu kod yeterli olacaktır

var express = require("express");

Ayrıca, Express'in yüklü olduğundan emin olmak için

$ npm install express

Node.js öğrenme hakkında daha fazla bilgi için Node.js Docs bölümüne bakın.

Yorumlar (5)

Hata: Sözdizimi Hatası: Beklenmeyen belirteç import veya SyntaxError: Beklenmeyen belirteç dışa aktar


Çözüm: Tüm içe aktarmalarınızı örnek olarak değiştirin

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

Ayrıca export default = foo; ifadenizi module.exports = foo; olarak değiştirin

Yorumlar (2)