一、用法

npx [options] [@version] [command-arg]…
npx [options] [-p|—package ]… [command-arg]…
npx [options] -c ‘
npx —shell-auto-fallback [shell]

二、安装

npm install -g npx
注: npm 从5.2版开始,增加了 npx 命令,Node 自带 npm 模块,所以可以直接使用 npx 命令。万一不能用,就要手动安装一下。

三、描述

执行本地路径 node_modules/.bin 下或缓存中心的命令,安装执行命令所需要的包。
默认情况下,npx会检查命令是否存在于 $PATH中或者本地项目的二进制文件中并且去执行它。如果命令不存在,npx会先安装它并执行。
除非指定了—package选项,否则npx将根据提供的标识符尝试猜测要调用的二进制文件的名称。npm可以理解的所有软件包标识符 npx 都可以使用,包括git说明符,远程tarball,本地目录或作用域软件包。
如果包含完整标识符使用了 —package, npx将始终使用软件包的新安装临时版本。也可以用—ignore-existing标志强制。
使用 -p 选项

  1. npx -p webpack@4.42.1 npx webpack
  2. //npx -p webpack@4.42.1 相当于先安装指定版本包,安装完包之后在执行npx webpack

使用 —ignore-existing

  1. npx webpack --ignore-existing
  • -p, —package : 定义要安装的包。默认就是命令的值
  • —no-install:如果使用了此选项,npx仅仅是执行已经存在于当前路径或在 “./node_modules/.bin”中的命令,不会尝试安装不存在的命令
  • —cache :设置npm的缓存位置,默认是npm已有的设置
  • —ignore-existing:如果设置了此标志,则在决定是否安装之前,npx不会在$PATH或现有包的当前软件包中node_modules/.bin查找。这些路径中的二进制文件仍然可以执行,但是此安装请求的任何软件包都将其遮蔽

    四、使用

    举个例子,在开发中使用到webpack,并且webpack并没有全局安装,只安装在项目内,那么想要执行webpack命令有两种方式:
  1. 使用全路径: 在命名行执行node_modules/.bin/webpack

image.png

  1. 在package.json中配置一个脚本,使用npm run 脚本名 来执行webpack

image.png

使用npx后就不用这么麻烦,直接npx webpack 就可以执行打包命令。原因就是 npx 会找本地路径 node_modules/.bin下的命令,有就直接执行

原文地址: https://www.npmjs.com/package/npx