Абсолютнный путь для import в Node.js ES6
Есть ли возможность использовать абсолютный путь в import в es6 модулях Node.js? В случае require допускается require.main.require('./absolute/path/file'). Нужно что-то похожее
Ответы (2 шт):
Автор решения: Alexander Yukal
→ Ссылка
const root = process.cwd();
const customModule = require(`${root}/lib/customModule`);
или:
console.log(__filename);
Автор решения: MoloF
→ Ссылка
Нормального варианта не нашел, но есть замечательный костыль в виде: module-alias
ДО установки модуля путь выглядел так:
require('../../../../some/very/deep/module')
После:
module = require('@deep/module')
Чтобы создать псевдоним для каталога необходимо в package.json вписать объект:
"_moduleAliases": {
"@root" : ".",
"@deep" : "src/some/very/deep/directory/or/file",
"@my_module" : "lib/some-file.js",
"something" : "src/foo"
}
Где ключ - название псевдонима
А значение - путь к каталогу.
Подробнее можно посмотреть в документации самого модуля