全局安装的包命令文件奇怪地生成
我一直在一个命令行程序 ,我有一个问题,试图让它安装在全球。
我在package.json中设置了bin,看起来像这样
"bin" : { "bsp" : "bsp.js" }
无论何时在%appdata%/ npm中生成命令文件,它都会像这样生成它们:
BSP
"$basedir/node_modules/BlueStacksProfiles/bsp.js" "$@" exit $?
bsp.cmd
"%~dp0\node_modules\BlueStacksProfiles\bsp.js" %*
注意它在两者中都缺less节点命令,并且在第一个节点中没有正确设置basedir(这是不好的,因为如果你尝试从git bash运行它,它将假定错误的basedir)。
而不是说, http服务器
HTTP服务器
#!/bin/sh basedir=`dirname "$0"` case `uname` in *CYGWIN*) basedir=`cygpath -w "$basedir"`;; esac if [ -x "$basedir/node" ]; then "$basedir/node" "$basedir/node_modules/http-server/bin/http-server" "$@" ret=$? else node "$basedir/node_modules/http-server/bin/http-server" "$@" ret=$? fi exit $ret
HTTP-server.cmd
@IF EXIST "%~dp0\node.exe" ( "%~dp0\node.exe" "%~dp0\node_modules\http-server\bin\http-server" %* ) ELSE ( node "%~dp0\node_modules\http-server\bin\http-server" %* )
这只是通用模板,我安装的所有其他全球安装的npm应用程序看起来像这样。 我觉得我从我的package.json丢失了一些东西,但是我找不到在创build全局安装的节点应用程序方面的很多材料。
那么,我做错了什么?
所以,对于任何其他人有这个问题,这是因为我的bin文件没有开始
#!/usr/bin/env node
添加,解决了这个问题。