我自己发布了一个npm包:makeTimeTable
我在cygwin中愉快地安装了它:
npm install -g maketimetable
但是当我尝试运行命令行时,会抛出错误:
/node_modules/maketimetable/cli.js: No such file or directory
最后我发现安装我的软件包时生成的命令脚本文件(C:\Users\xxx\AppData\Roaming\npm\maketimetable
)与我安装的其他全局命令行工具不同,下面是我的:
"$basedir/node_modules/maketimetable/cli.js" "$@"
exit $?
其他全球命令行工具'脚本是这样的:
#!/bin/sh
basedir=`dirname "$0"`
case `uname` in
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
"$basedir/node" "$basedir/node_modules/eslint/bin/eslint.js" "$@"
ret=$?
else
node "$basedir/node_modules/eslint/bin/eslint.js" "$@"
ret=$?
fi
exit $ret
所以在其他工具中'脚本,它将区分我是否使用cygwin,它会稍微区别对待路径和目录。但为什么我的软件包的脚本与那些不同呢?如何让npm为我的包生成相同类型的脚本?
答案 0 :(得分:1)
尝试将#!/usr/bin/env node
作为cli.js
的第一行。