【问题标题】:Set NPM log level to "quiet" in script definition在脚本定义中将 NPM 日志级别设置为“安静”
【发布时间】:2021-02-05 11:35:42
【问题描述】:

我的项目有一个简单的 CLI 工具,我通过 NPM/Yarn 脚本运行:

  "scripts": {
    "cli": "dotenv ts-node -r tsconfig-paths/register src/cli/index.ts --",
    ...
}

我想在脚本运行时将 NPM/Yarn 自动写入标准输出的日志信息静音。

默认输出为:

$~/foo> yarn cli --help
yarn run v1.22.5
$ dotenv ts-node -r tsconfig-paths/register src/cli/index.ts -- --help
cli <command>

Foo bar baz bat

Options:
  --help  Show help                                                    [boolean]
✨  Done in 2.42s.

我想去掉它写出命令本身的部分,以及“在xs 中完成”部分。

我知道我可以使用 yarn --silent clinpm run --quiet cli 手动完成,或者我可以在 npmrc 中设置 loglevel=quiet,但两者都不可取。

我不想使用 npmrc,因为我想为其他脚本零售输出,并且我不想要求用户自己使用 --silent 标志运行它。

CLI 工具会生成 JSON 并将其馈入其他脚本,因此如果它是干净的输出,可以在没有 NPM/Yarn 的情况下重定向或管道传输,这是理想的选择。

我尝试将--silent 添加到命令的开头,但这不起作用。我尝试将npm_config_loglevel=quiet 设置为环境变量,但这不起作用。

还有什么我可以尝试的,还是不支持?

【问题讨论】:

    标签: npm yarnpkg


    【解决方案1】:

    当调用npm run script 时,默认情况下你总是会得到这样的输出,并且没有办法(当前)禁用它。

    如果你不想要 npm 输出,直接调用你的脚本而不使用 npm。

    例如而不是执行npm run cli,然后执行npx dotenv ts-node -r tsconfig-paths/register src/cli/index.ts --

    【讨论】:

    • 感谢您的回复,但不幸的是,这对我的用例没有好处。我需要尽可能简单的东西,甚至要求用户添加--silent,如问题中所述会导致混淆。
    猜你喜欢
    • 2015-04-21
    • 2018-06-27
    • 1970-01-01
    • 2011-10-02
    • 2012-05-04
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    相关资源
    最近更新 更多