2017-10-14 32 views
5

kullanarak ben bayrağı --experimental-modules kullanın. Ben bu bayrağı kullandığınızdaAlternatif --experimental-modülleri bayrağı

Ancak metavariable __dirname kullanılamaz. Bu modda uyumlu __dirname saklanır aynı dizeyi almak için alternatif bir yolu var mı?

+0

İşte (https://esdiscuss.org/topic/nodejss-filename-dirname-in-es6-modules) ES6 çalışan bir göz [__dirname' '] almak için etrafında bir işi var – kgangadhar

cevap

9

Orada import.meta aracılığıyla bu değişkenleri gösterme konusuna önerileri, ama şimdilik, ben here buldum Bir Hacky geçici çözüm ihtiyacım var: Benim çözüm Ben de bu konuda girdim

// expose.js 
module.exports = {__dirname}; 

// use.mjs 
import expose from './expose.js'; 
const {__dirname} = expose; 
0

:

./src/app.mjs:

app.set('views', path.join(path.resolve('./src'), 'views')); 

İşte benim klasör hakkında bilgiler Organizasyon:

./package.json

"scripts": { 
    "start": "node --experimental-modules ./index.mjs" 
}, 

import server from './src/bin/www.mjs'; 
server.start(); 
Bu __dirname olarak benim pencere pc doğru yolları döndürüyor ./index.mjs.