npx使用场景
  # 0.前言
包管理器知识补漏:npx。
# 1. npm 主要使用场景
 # 1.1 快速执行node_modules 内部模块
 一般情况下,如果我们要使用本地安装模块,有两种方法:
只能在在
package.json的script字段(Manifest) 中添加指令,如下:"script": { "build": "", "start": "", ...... }1
2
3
4
5终端中输入:
node-modules/.bin/mocha --version1
除了上面两种方法外,可以使用npx 指令,该指令会自动去以下目录寻找:
node_modules/.bin路径- 环境变量
$PATH 
可以执行:
# 执行 node_modules/.bin
npx mocha # 前提在 bin 目录存在
# 执行 系统指令
npx ls    # 注意: 无法执行 Bash 内置指令,如 npx cd 会报错
 1
2
3
4
5
2
3
4
5
# 1.2 避免全局安装
npx create-react-app(远程模块) my-react-app
 1
执行以上这段指令,会做如下步骤:
- 将 
create-react-app下载至一个临时目录 - 执行结束后将删除该文件。
 
使用以下两个参数,指定是否进行远程下载:
// 强制使用本地
npx --no-install http-server
// 强制使用远程
npx --ignore-existing create-react-app my-react-app
 1
2
3
4
5
2
3
4
5
借助 npx 可以执行远程仓库的特性,可以提出 npx 更具实践意义的使用场景:
# 1. 执行 Gist 代码
$ npx https://gist.github.com/zkat/4bc19503fe9e9309e2bfaa2c58074d32
# 远程代码必须是一个模块,即必须包含package.json和入口脚本。
# 2. 使用不同版本的 node
$ npx node@0.12.8 -v
v0.12.8
 1
2
3
4
5
6
7
2
3
4
5
6
7
# 2.总结
npx 的使用场景,主要是本地依赖执行和全局依赖执行
本地模块
可以实现
node_module bin文件夹的快速执行。远程模块
npx在执行模块的时候,需要知道当前模块在本地/全局node_modules中是否存在,如果不存在,将进行网络下载。npx在利用 远程模块 进行代码执行时,不会对模块进行缓存,执行结束后就删掉了。- 可以使用 
npx完成一些不想安装在本地的模块,如node版本切换以及github脚本执行。 
编辑  (opens new window)
  上次更新: 2022/04/06, 15:04:00