npx(1)--执行npm包二进制文件
简介
npx [options] <command>[@version] [command-arg]...
npx [options] [-p|--package <pkg>]... <command> [command-arg]...
npx [options] -c '<command-string>'
npx --shell-auto-fallback [shell]
安装
npm install -g npx
描述
从本地node_modules/.bin
或缓存中心执行<command>
,安装运行<command>
所需的任何包。
默认情况下,npx将检查<command>
是否存在于$PATH
或本地项目二进制文件中,并执行它。如果找不到,将在执行之前安装它。
除非指定了--package
选项,否则npx将根据提供的说明符猜测要调用的二进制文件的名称。npm理解的所有包说明符都可以与npx一起使用,包括git说明符、远程tarball、本地目录或作用域包。
如果包含完整的说明符,或者使用--package
,npx将始终使用新安装的包的临时版本。也可以使用--ignore-existing
标志强制执行此操作。
-
-p、 --package <package>
-定义要安装的包。默认值为<command>
。如果要调用其他可执行文件之一,或者二进制名称与包名称不匹配,则只需要对具有多个二进制文件的包执行此操作。如果提供了此选项,<command>
将按原样执行,如果存在@version
,则不解释。可以提供多个--package
选项,并且将安装指定的所有包。 -
--no-install
-如果传递给npx,它只会在当前路径或$prefix/node_modules/.bin
中运行<command>
。它不会尝试安装丢失的命令。 -
--cache <path>
设置npm缓存的位置。默认为npm自己的缓存设置。 -
--userconfig<path>
-要传递给npm的用户配置文件的路径。默认为npm当前的默认值。 -
-c <string>
-在npm run-script
中执行<string>
,像在shell环境中,所有常用的环境变量都可用。只有<string>
中的第一项将自动用作<command>
。其他人必须使用-p。 -
--shell <string>
调用命令的shell(如果有)。 -
--shell-auto-fallback [<shell>]
—生成shell代码,用一个调用npx的处理程序覆盖shell的“command not found”。尝试找出您的shell,或者您可以将其名称(bash、fish或zsh)作为选项传递。请参见下面的安装方法。 -
--ignore-existing
-如果设置了此标志,npx在决定是否安装之前,不会在$PATH
或node_modules/.bin
中查找现有版本。这些路径中的二进制文件仍然可以执行,但将被此安装所请求的任何包所隐藏。 -
-q, --quiet
-禁止npx本身的任何输出(进度条、错误消息、安装报告)。子命令输出本身不会被静音。 -
-n, --node-arg
-当二进制为node脚本时提供给node的额外节点参数。可以多次提供此选项以添加更多参数。 -
-v, --version
-显示当前npx版本。
示例
运行项目本地bin
$ npm i -D webpack
$ npx webpack ...
无需本地安装的一次性调用
$ npm rm webpack
$ npx webpack -- ...
$ cat package.json
...webpack not in "devDependencies"...
从github存储库调用命令
$ npx github:piuccio/cowsay
...or...
$ npx git+ssh://my.hosted.git:cowsay.git#semver:^1
...etc...
使用一个npx调用和多个包执行完整的shell命令
$ npx -p lolcatjs -p cowsay -c \
'echo "$npm_package_name@$npm_package_version" | cowsay | lolcatjs'
...
使用--inspect运行node二进制文件
$ npx --node-arg=--inspect cowsay
Debugger listening on ws://127.0.0.1:9229/....
指定一个node版本来运行npm脚本(或其他任何东西!)
npx -p node@8 npm run build
SHELL AUTO FALLBACK
当您在命令行中键入带有@的内容,但找不到该命令时,可以将npx配置为默认的回退命令运行。这包括安装在本地前缀中找不到的包。
例如:
$ npm@4 --version
(stderr) npm@4 not found. Trying with npx...
4.6.1
$ asdfasdfasf
zsh: command not found: asfdasdfasdf
目前支持zsh
、bash(>=4)
和fish
。您可以使用npx --shell-auto-fallback <shell>
访问这些完成脚本。
要永久安装,请将下面的相关行添加到~/.bashrc
、~/.zshrc
、~/.config/fish/config.fish
,或根据需要。要只为shell会话安装,只需运行。
您可以选择在生成回退时传递--no-install
,以防止它在缺少命令时安装包。
For bash@>=4:
$ source <(npx --shell-auto-fallback bash)
For zsh:
$ source <(npx --shell-auto-fallback zsh)
For fish:
$ source (npx --shell-auto-fallback fish | psub)