我試圖創建一個可以全局安裝的軟件包。我的package.json有:npm全局安裝不使用節點
{
"name": "my-new-package",
"version": "1.0.0",
"main": "index.js",
"preferGlobal": true,
"bin": {
"my-new-package": "index.js"
}
}
我可以用「node index.js」運行它,我可以將它發佈到npm。
的問題是,當我安裝它在全球npm i -g my-new-package
,在Windows文件my-new-package.cmd
是:
@"%~dp0\node_modules\my-new-package\index.js" %*
所以,當我執行my-new-package
它會打開默認的編輯器的JavaScript文件。
相比之下,其他全局軟件包使用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上安裝它。
那麼如何配置我的軟件包以便在全局安裝時使用節點?