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
388
3
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.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:
Destek yerel olarak ortaya çıkana kadar, klasik
require
ifadelerini kullanmaya devam etmeniz gerekecek:NodeJS'deki yeni ES6/7 özelliklerini gerçekten kullanmak istiyorsanız, Babel kullanarak derleyebilirsiniz. İşte örnek bir sunucu.
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
Ayrıca, Express'in yüklü olduğundan emin olmak için
Node.js öğrenme hakkında daha fazla bilgi için Node.js Docs bölümüne bakın.
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
Ayrıca
export default = foo;
ifadenizimodule.exports = foo;
olarak değiştirin