npx的使用
npx的使用
npm在5.2版本之后添加了npx命令。
npx的工作原理:
- 去
node_modules/.bin
目录查找命令是否存在。找到之后执行 - 如果在
bin
目录下找不到命令,那么就会去$path
里查找命令,找到后执行 - 如果都找不到,那么就会创建一个临时的文件下载所需要的的依赖包,使用完成后删除,不污染全局环境
安装npx
-
先检查一下自己的电脑上是否有
npx
(直接使用npx命令也会自动全局安装)。 -
如果没有,打卡cmd全局安装
npx
npm install -g npx
使用npx
-
npx
主要是为了解决调用项目内部安装的模块,例如:$ npm install -D mocha
-
但是调用的时候我们只能通过项目脚本和
pacage.json
文件调用:# 项目根目录下 $ node-modules/.bin/mocha --version
-
但是
npx
调用就很方便$ npx mocha --version
-
调用系统命令
# 等同于ls $ npx ls
注意,Bash 内置的命令不在
$PATH
里面,所以不能用。比如,cd
是 Bash 命令,因此就不能用npx cd
。 -
临时安装
$ npx create-react-app packageName
会将
create-react-app
下载到一个临时目录,使用过后再进行删除。 -
下载时允许指定版本。
$ npx uglify-js@3.1.0 main.js -o ./dist/main.js
指定3.1.0版本的
uglify-js
版本。注意,只要 npx 后面的模块无法在本地发现,就会下载同名模块。比如,本地没有安装
http-server
模块,下面的命令会自动下载该模块,在当前目录启动一个 Web 服务。$ npx http-server
-
--no-install
参数和--ignore-existing
参数-
如果想强制
npx
使用本地依赖不下载远程依赖。就是用--no-install
,如果本地没有依赖包的话,就会报错$ npx --no-install http-server
-
相反,想跳过本地依赖使用远程安装就是用参数
--ignore-existing
.$ npx --ignore-existing create-react-app packageName
-
指令
-
-p
参数-p
参数用于指定npx
所要安装的模块:$ npx -p node@0.12.8 node -v # v 0.12.8
-
-c
参数-.- 表示没看懂,也觉得不常用,不写了