【问题标题】:Difference between double dash with no argument (--) vs double dash with arguments (eg: --no-watch)不带参数的双破折号 (--) 与带参数的双破折号之间的区别(例如:--no-watch)
【发布时间】:2021-11-09 05:52:30
【问题描述】:

示例:当我尝试执行 Angular 应用程序的单元测试时,会执行以下命令: npm run test -- --no-watch --browsers=ChromeHeadlessCI

我知道需要使用双破折号 (--) 将参数传递到 npm 脚本。 但我不明白第一个'-'试图做什么?因为它背后没有任何论据,不喜欢--no-watch或--browsers=ChromeHeadlessCI

命令示例来自:https://angular.io/guide/testing

【问题讨论】:

  • npm v6.x docs 提供以下描述:“从 npm@2.0.0 开始,您可以在执行脚本时使用自定义参数。使用特殊选项 --通过getopt 来分隔选项的结尾。npm 会将-- 之后的所有参数直接传递给您的脚本"。本质上,特殊的-- 选项划分了属于 npm run 命令本身的任何选项的结尾(例如--silent),以及要传递到npm 脚本。
  • 这能回答你的问题吗? What does -- do when running an npm command?

标签: angular npm arguments command


【解决方案1】:

这就是 npm 解析命令的方式。在您的示例中:

npm run test -- --no-watch --browsers=ChromeHeadlessCI

-- 告诉 npm 任何以下参数都是针对 test 脚本的,而不是针对 npm 的。举个例子: npm run test --workspace=a -- --no-watch --browsers=ChromeHeadlessCI

工作区是 npm 的功能,而不是测试脚本。

https://docs.npmjs.com/cli/v7/commands/npm-run-script

【讨论】:

    猜你喜欢
    • 2016-06-06
    • 1970-01-01
    • 2011-08-28
    • 2012-07-15
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 2019-04-22
    相关资源
    最近更新 更多