npx 是否不再进行免安装 运行?
Does npx no longer do install-less run?
npx allows you to run that npm command without installing it first. If the command isn't found, npx will install it into a central cache:
他们以此为例:
npx cowsay "Hello"
但是当我 运行 时:
$ npx cowsay "Hello"
Need to install the following packages:
cowsay
Ok to proceed? (y)
嗯?我现在需要设置一些偏好吗?我习惯于 npx
运行 在不安装的情况下安装东西,就像他们在 nodejs.dev 上说的那样。我真的不想在我的全局变量中安装 cowsay
。
Node v14.17.5
NPM 7.21.0
OS:ProductName: Mac OS X
ProductVersion: 10.15.7
在此处作为问题提交:https://github.com/nodejs/nodejs.org/issues/4104
编辑:刚刚在 NPM 6 中对此进行了测试,它按预期工作。这可能是 NPM post v6.
中的更改
✗ npm --version
6.14.16
✗ npx cowsay "Hello"
npx: installed 41 in 7.509s
_______
< Hello >
...
如果您不愿意每次安装时都输入'yes',您可以执行以下操作。
npm_config_yes=true npx cowsay "hello"
看到这个https://github.com/npm/cli/issues/2226
npx
也有一个 --yes
标志,你可以用来绕过提示:
npx --yes some-npm-package
如果您 运行 npx --help
,则没有记录,但此标志的文档隐藏在 NPM website 上的命令“描述”中。
如果您需要拒绝提示,还有一个 --no
标志可用。
这似乎是 NPM 6 之后的更改。
$ nvm install 18
Downloading and installing node v18.0.0...
...
$ nvm use 18 # this was a fresh install
Now using node v18.0.0 (npm v8.6.0)
$ npx cowsay "Node 18"
Need to install the following packages:
cowsay
Ok to proceed? (y) y
_________
< Node 18 >
---------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
$ nvm use 14
Now using node v14.19.1 (npm v6.14.16)
$ npm uninstall --global cowsay # in case I already had it installed
up to date in 0.037s
$ npx cowsay "Node 14" # NOTE: no confirmation
npx: installed 41 in 5.271s
_________
< Node 14 >
---------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
注意:没有确认在 Node 14 中安装。
如果你想在 Node 7+ 中使用一个包而不确认安装,你需要添加确认标志。请参阅@Nitesh 的回答。
npx allows you to run that npm command without installing it first. If the command isn't found, npx will install it into a central cache:
他们以此为例:
npx cowsay "Hello"
但是当我 运行 时:
$ npx cowsay "Hello"
Need to install the following packages:
cowsay
Ok to proceed? (y)
嗯?我现在需要设置一些偏好吗?我习惯于 npx
运行 在不安装的情况下安装东西,就像他们在 nodejs.dev 上说的那样。我真的不想在我的全局变量中安装 cowsay
。
Node v14.17.5
NPM 7.21.0
OS:ProductName: Mac OS X
ProductVersion: 10.15.7
在此处作为问题提交:https://github.com/nodejs/nodejs.org/issues/4104
编辑:刚刚在 NPM 6 中对此进行了测试,它按预期工作。这可能是 NPM post v6.
中的更改✗ npm --version
6.14.16
✗ npx cowsay "Hello"
npx: installed 41 in 7.509s
_______
< Hello >
...
如果您不愿意每次安装时都输入'yes',您可以执行以下操作。
npm_config_yes=true npx cowsay "hello"
看到这个https://github.com/npm/cli/issues/2226
npx
也有一个 --yes
标志,你可以用来绕过提示:
npx --yes some-npm-package
如果您 运行 npx --help
,则没有记录,但此标志的文档隐藏在 NPM website 上的命令“描述”中。
如果您需要拒绝提示,还有一个 --no
标志可用。
这似乎是 NPM 6 之后的更改。
$ nvm install 18
Downloading and installing node v18.0.0...
...
$ nvm use 18 # this was a fresh install
Now using node v18.0.0 (npm v8.6.0)
$ npx cowsay "Node 18"
Need to install the following packages:
cowsay
Ok to proceed? (y) y
_________
< Node 18 >
---------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
$ nvm use 14
Now using node v14.19.1 (npm v6.14.16)
$ npm uninstall --global cowsay # in case I already had it installed
up to date in 0.037s
$ npx cowsay "Node 14" # NOTE: no confirmation
npx: installed 41 in 5.271s
_________
< Node 14 >
---------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
注意:没有确认在 Node 14 中安装。
如果你想在 Node 7+ 中使用一个包而不确认安装,你需要添加确认标志。请参阅@Nitesh 的回答。