繁体   English   中英

使 npx 静默安装最新的软件包版本,而不提示用户输入

[英]Make npx silently install latest package version, without prompting user for input

概要

当我使用npx create-next-app@latest ,系统会提示我安装更新的软件包版本。 我在npx上找不到参数来使命令在脚本中静默工作。

例如,我希望找到诸如--silent--force--yes类的参数,这是其他包管理器的常见约定。

对此必须有一个简单的答案,但老实说,我找不到它。

仅供参考,我在 Windows 10 上使用 PowerShell 作为我的 shell 环境,尽管我希望npx命令提供一个参数,而不必使用 shell 功能(管道)来完成此操作。

PS C:\git\myapp> npx create-next-app@latest
Need to install the following packages:
  create-next-app@latest
Ok to proceed? (y)

npx --help命令不会产生任何指导。

PS > npx --help
npm exec

Run a command from a local or remote npm package

Usage:
npm exec -- <pkg>[@<version>] [args...]
npm exec --package=<pkg>[@<version>] -- <cmd> [args...]
npm exec -c '<cmd> [args...]'
npm exec --package=foo -c '<cmd> [args...]'

Options:
[--package <pkg>[@<version>] [--package <pkg>[@<version>] ...]]
[-c|--call <call>]
[-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]]
[-ws|--workspaces]

alias: x

Run "npm help exec" for more info

实际结果

npx 暂停执行,直到提供用户输入。

预期结果

npx 会自动安装最新版本的包并执行它,而不提示用户。

这似乎是一个错误。 根据在线文档npm exec (又名npx )支持--yes参数。 但是,在npm 7.19.1版本中,CLI 会忽略指定--yes选项。

要重现该问题,请使用 Docker CLI 和 Bash shell 运行新的 Node.js 容器:

docker run --rm --interactive --tty node:16.5.0 bash

然后,在容器内运行这些命令:

npm install --global create-next-app@10.0.9
npx create-next-app@latest --yes

以下是16.5.0容器映像的版本信息:

{
  npm: '7.19.1',
  node: '16.5.0',
  v8: '9.1.269.38-node.20',
  uv: '1.41.0',
  zlib: '1.2.11',
  brotli: '1.0.9',
  ares: '1.17.1',
  modules: '93',
  nghttp2: '1.42.0',
  napi: '8',
  llhttp: '6.0.2',
  openssl: '1.1.1k+quic',
  cldr: '39.0',
  icu: '69.1',
  tz: '2021a',
  unicode: '13.0',
  ngtcp2: '0.1.0-DEV',
  nghttp3: '0.1.0-DEV'
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM