什么 - 运行npm命令时做什么?

Kun*_*nal 12 bash npm

例如,使用双短划线或两个连字符--,如下所示:

npm test -- --coverage
Run Code Online (Sandbox Code Playgroud)

运行npm没有双破折号标志,这样似乎追加后续标志不覆盖模式下运行,这是正确的?我找不到关于此的文档.

Cha*_*ffy 16

--作为一个参数本身是在所有UNIX命令中标准化的:它意味着进一步的参数应该被视为位置参数,而不是选项.请参阅POSIX实用程序语法约定中的准则10 .

为了给你一个非基于NPM的例子,ls -- -l将查找一个名为的文件-l,因为--指定所有后续参数都是位置的.

在这种情况下,这意味着它--coverage不是npm自己的论据; 据推测,它随后由test子命令读取.对于正确遵循惯例的工具,这不是必要的,因为准则9规定所有选项应在任何参数之前给出(因此在此上下文中--coverage应该将其视为参数,因为它在参数之后test); 但是,由于NPM仅部分遵循准则,这是可预见的结果.

(Long- --optionstyle选项实际上是一个整体的GNU扩展,所以我们在这里有一个多种解析风格的错误;不幸的是,这就是生活).