Npm bin скрипт и чтение локальных файлов - PullRequest
0 голосов
/ 23 октября 2019

У меня есть пакет npm, в котором есть раздел bin для запуска утилиты cli-интерфейса. Один из зависимых сценариев этой утилиты читает конкретный файл из этого каталога пакета через модуль fs. Определение утилиты cli:

"bin": { "my_cli_command": "lib/cli.js" }

Когда я использую npm link и команда cli локально, все работает как файл. Например:

npm link
my_cli_command

Но после установки пакета в другом приложении узла команда cli вызывает проблему с чтением файла сценария, поскольку узел перестраивает путь сценария bin:

npm i --save my_lib
npx my_cli_command

Будет ошибка, потому что my_cli_command читает локальный файл пакета, который сейчас недоступен.

Есть ли способ разрешить сценарию npm bin читать файл из его собственного пакета?

1 Ответ

0 голосов
/ 23 октября 2019

Проблема решена. Только что начали использовать метод path.resolve и переменную __dirname для вычисления пути к файлу:

let filePath = path.resolve(__dirname, "../files/somefile.txt");

Так что этот подход исключит зависимость от cwd, и приложение npm cli сможет работать сэто файлы пакетов без проблем локально или установлены в другом проекте.

...