[英]why the command script generated for my npm package is different than other package?
我自己發布了一個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為我的包生成相同類型的腳本?
嘗試將#!/usr/bin/env node
作為cli.js
的第一行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.