Я пытаюсь создать пакет, который можно установить глобально. Мой package.json имеет:npm глобальная установка, не использующая узел
{
"name": "my-new-package",
"version": "1.0.0",
"main": "index.js",
"preferGlobal": true,
"bin": {
"my-new-package": "index.js"
}
}
я могу запустить его с «узлом index.js» и я могу опубликовать его в НПМ.
Проблема заключается в том, что когда я установить его глобально npm i -g my-new-package
, на Windows, файл my-new-package.cmd
является:
@"%~dp0\node_modules\my-new-package\index.js" %*
Так что, когда я исполняю my-new-package
он открывает яваскрипт файл с редактором по умолчанию.
Напротив, другие глобальные пакеты используют node.exe
. Вот cute-files.cmd
пример:
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" "%~dp0\node_modules\cute-files\cute-files.js" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node "%~dp0\node_modules\cute-files\cute-files.js" %*
Кстати, я получаю такое же поведение, когда я установить его на Linux.
Как я могу настроить свой пакет для использования узла, когда он установлен глобально?