在安装npm的同时还会自动安npx,如果不能使用就自己手动安装一下
npm install -g npx
查看npx版本
npx主要有以下几个功能
执行在项目中安装过的包
正常情况下在项目中通过npm安装的包会下载到项目跟目录的node_modules/ 目录下,此时是无法在根目录通过命令直接调用的
想要通过命令调用需要进入到node_modules/.bin/ 目录中或者在package.json 的scripts字段里面配置后通过npm run调用
而使用npx命令可直接在项目根目录执行命令调用模块
例如:
nodemon
安装:
npm i nodemon
调用一: 在项目根目录中无法调用,进入到node_modules/.bin/ 目录后可以
调用二: 在package.json 的scripts字段里面配置后通过npm run可调用
{
"name": "npx-demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"dependencies": {
"nodemon": "^2.0.16"
},
"devDependencies": {},
"scripts": {
"mon:v": "nodemon --version"
},
"keywords": [],
"author": "",
"license": "ISC"
}
调用三: 使用npx运行的时候,会自动到node_modules/.bin和环境变量 $PATH里面检查命令是否存在,比前两种简单便捷
安装临时使用的包
在使用npx执行包的时候如果npx检测到项目中没有此包而全局中也没有安装,则会把包下载到一个临时目录使用之后在删除
例如:
使用vue脚手架创建项目,当前 @vue/cli版本是5.0
如果现在想临时使用 @vue/cli4.5创建项目,正常我们需要先卸载 @vue/cli5.0,在安装 @vue/cli4.5,使用过后还需要在还原回来
这时候就可以使用npx,临时安装 @vue/cli4.5使用过后自动删除不会对全局造成任何影响
执行远程仓库上的代码
npx还可以直接执行远程仓库上的代码,前提是远程仓库代码必须是一个模块
index.js和package.json为github上项目中的内容,只为演示
index.js
#!/usr/bin/env node
console.log('github_demo->index.js');
package.json
{
"name": "demo",
"version": "1.0.0",
"bin": "./index.js"
}