簡體   English   中英

為什么為我的npm軟件包生成的命令腳本與其他軟件包不同?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM