Абсолютнный путь для import в Node.js ES6

Есть ли возможность использовать абсолютный путь в import в es6 модулях Node.js? В случае require допускается require.main.require('./absolute/path/file'). Нужно что-то похожее


Ответы (2 шт):

Автор решения: Alexander Yukal

process.cwd() или __filename

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"
}

Где ключ - название псевдонима

А значение - путь к каталогу.


Подробнее можно посмотреть в документации самого модуля

module-alias

→ Ссылка