我很困惑自定义的npm脚本和它们运行的bash脚本之间的关系。注意:这不是孤立的bash问题。我可以通过将“echo $2 $1”写入.sh文件并直接从终端运行来产生下面描述的预期行为。
如果我从终端运行它:
"scripts": {"report":"echo $2 $1"}
如果我从终端运行它:
npm run report "first" "second"
,因为在我的npm脚本中,我先调用了$2
BEFORE $1
,我希望它输出: second first
,但是由于某种原因它总是先打印$1
:first second
。我尝试通过将我的参数缓存为变量,然后打印这些变量来解决这个问题。"scripts": {"report": "(FIRST=$1 && SECOND=$2) && echo $SECOND $FIRST"}
但是输出结果相同:npm run report "first" "second"
=> first second
这是怎么回事?