ノードアプリケーションを実行してES6モジュールを使用する場合は、フラグ--experimental-modules
を使用します。--experimental-modulesフラグを使用すると、ノード内の__dirnameの代わりになります
ただし、このフラグを使用すると、メタバリアブル__dirname
は使用できません。このモードと互換性がある__dirname
に格納されている同じ文字列を取得する別の方法はありますか?
ノードアプリケーションを実行してES6モジュールを使用する場合は、フラグ--experimental-modules
を使用します。--experimental-modulesフラグを使用すると、ノード内の__dirnameの代わりになります
ただし、このフラグを使用すると、メタバリアブル__dirname
は使用できません。このモードと互換性がある__dirname
に格納されている同じ文字列を取得する別の方法はありますか?
ありimport.meta
を介してこれらの変数を暴露について提案されて、今のところ、あなたは私がhereを見つけハック回避策を必要としている:
// expose.js
module.exports = {__dirname};
// use.mjs
import expose from './expose.js';
const {__dirname} = expose;
私もこの問題になった、私の解決策:
./src/app.mjs:
app.set('views', path.join(path.resolve('./src'), 'views'));
ここに私のフォルダに関する情報があります組織:
./index.mjs
"scripts": {
"start": "node --experimental-modules ./index.mjs"
},
./package.json
import server from './src/bin/www.mjs';
server.start();
それは__dirname
として私のWindows PC上で正しいパスを返します。
['__dirname'](https://esdiscuss.org/topic/nodejss-filename-dirname-in-es6-modules)がES6で動作するようにするには、次のような回避策があります。 – kgangadhar