npx的基本使用

1,179 阅读2分钟

在安装npm的同时还会自动安npx,如果不能使用就自己手动安装一下

 npm install -g npx

查看npx版本

image-20220621171622377.png

npx主要有以下几个功能

执行在项目中安装过的包

正常情况下在项目中通过npm安装的包会下载到项目跟目录的node_modules/ 目录下,此时是无法在根目录通过命令直接调用的

想要通过命令调用需要进入到node_modules/.bin/ 目录中或者在package.jsonscripts字段里面配置后通过npm run调用

而使用npx命令可直接在项目根目录执行命令调用模块

例如:

nodemon

安装:

 npm i nodemon

调用一: 在项目根目录中无法调用,进入到node_modules/.bin/ 目录后可以

image-20220621100959520.png

调用二:package.jsonscripts字段里面配置后通过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"
 }

image-20220621102017666.png

调用三: 使用npx运行的时候,会自动到node_modules/.bin和环境变量 $PATH里面检查命令是否存在,比前两种简单便捷

image-20220621102438089.png

安装临时使用的包

在使用npx执行包的时候如果npx检测到项目中没有此包而全局中也没有安装,则会把包下载到一个临时目录使用之后在删除

例如:

使用vue脚手架创建项目,当前 @vue/cli版本是5.0

image-20220621142749884.png

如果现在想临时使用 @vue/cli4.5创建项目,正常我们需要先卸载 @vue/cli5.0,在安装 @vue/cli4.5,使用过后还需要在还原回来

这时候就可以使用npx,临时安装 @vue/cli4.5使用过后自动删除不会对全局造成任何影响

image-20220622135936528.png

执行远程仓库上的代码

npx还可以直接执行远程仓库上的代码,前提是远程仓库代码必须是一个模块

index.jspackage.jsongithub上项目中的内容,只为演示

index.js

 #!/usr/bin/env node
 ​
 console.log('github_demo->index.js');

package.json

 {
   "name": "demo",
   "version": "1.0.0",
   "bin": "./index.js"
 }

image-20220622140605171.png