使用–experimental-modules标志时,节点中__dirname的替代方法
为了使用ES6模块,我运行我的节点应用程序时使用了flag --experimental-modules
modules。
但是当我使用这个标志时,元variables__dirname
不可用。 有没有其他的方法来获取存储在__dirname
与此模式兼容的相同的string?
有关于通过import.meta
暴露这些variables的build议,但现在,你需要一个hacky解决方法,我在这里find:
// 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
import server from './src/bin/www.mjs'; server.start();
./package.json
"scripts": { "start": "node --experimental-modules ./index.mjs" },
它是在我的Windows PC上返回正确的path为__dirname
。