我正在尝试运行本地创建的包的全局安装。
npm install -g myModule
在大多数情况下似乎都有效。
我在dir中看到了我期望的文件:Users\me\AppData\Roaming\npm\
(Windows)
我看到批处理文件和 cmd 文件。
但两者都有如下代码:
"$basedir/node_modules/myModule/main.js" "$@"
exit $?
我环顾dir,看到 Mocha,Bower,Grunt 有类似的东西:
#!/bin/sh
basedir=`dirname "$0"`
case `uname` in
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
"$basedir/node" "$basedir/node_modules/bower/bin/bower" "$@"
ret=$?
else
node "$basedir/node_modules/bower/bin/bower" "$@"
ret=$? fi exit $ret
如果我将文件更改为具有此格式(并调整路径),我会得到预期的行为(可以从命令行运行myModule
)....
否则我收到错误:... No such file or directory
答案 0 :(得分:0)
所以事实证明这是设计的。 我通过以下方式解决了这个问题
使用#!/usr/bin/env node
启动我的入口点文件
并删除文件上的.js
扩展名。
将package.json
上的bin设置为该文件:
"bin": {
"myModule": "bin/myModule"
}