[英]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.