You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么无需--分隔符即可将.作为参数传递给npm命令?

为什么npm传递.参数不需要--分隔符

该现象由npm的命令行参数分类解析规则决定:

  • 所有带 -/-- 前缀的参数会被npm默认识别为npm自身的配置选项,不会直接透传给执行的脚本;如果要把这类带前缀的参数传递给脚本,必须使用--分隔符标记,告知npm分隔符之后的所有内容均属于待执行脚本的参数。
  • 不带任何 - 前缀的普通位置参数(比如.、文件路径、无横线前缀的字符串等),不会被npm识别为自身配置项,会直接透传给对应脚本,不需要额外添加--分隔符。

对应场景说明:

  1. npm test .中的.属于无横线前缀的普通位置参数,npm会直接将其拼接到package.json中定义的react-app-rewired test命令末尾,相当于执行react-app-rewired test .,参数可被正常识别。
  2. --coverage属于带--前缀的标识参数,若直接执行npm test --coverage,npm会尝试将--coverage作为自身命令选项处理,但npm test内置无该配置,会直接忽略该参数,不会传递给脚本;只有添加--分隔符后,--coverage才会被透传给react-app-rewired test执行。

常见的同类场景还有传递测试文件路径:npm test src/utils/format.test.js同样不需要添加--,因为文件路径属于普通位置参数,可被npm直接透传。

内容的提问来源于stack exchange,提问作者Mario Petrovic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:57:03