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 --version
1
除了上面两种方法外,可以使用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