我刚刚遇到这个命令:
npm run script ./src/automation/automation_main.ts -- -i payroll_integration
我在谷歌上搜索了双破折号,它似乎表示命令选项的结束,根据这个答案: https://unix.stackexchange.com/a/11382/47958
我不明白的是为什么双破折号(-i)后面有命令选项。即使在双破折号之后我们仍然可以包含命令选项吗?
我运行了带有和不带有双破折号的上述脚本,并且两者似乎都在运行。
答案1
您的示例命令中的情况是有两个程序被调用,并且它们都使用命令行参数。您正在调用npm
,npm
并将遵守run script
调用脚本的参数automation_main.ts
。所有参数都没有用引号引起来(也许这对于这种 npm 命令是必需的)。
这个参数-i payroll_integration
显然是针对脚本的,而不是针对 npm 的。你如何说服 npm 不要尝试解析它(这可能会导致错误)?
答案:你插入一个参数,告诉 npm 该行的其余单词不是 npm 的参数。这是--
,意思是“你的论点到此为止,不用担心其余的”。 Npm 将删除其参数,直到并包括--
,并调用脚本,并显示该行的其余部分以供脚本解析和使用。
请注意,虽然bash
和npm
理解该--
参数(正如许多其他 GNU 实用程序所做的那样),但有些程序不理解它,并且不会按照我在此处描述的npm
.