hudada-cli
Version:
专为程序员准备的本地文档搜索,快捷开发工具
143 lines (108 loc) • 2.77 kB
Markdown
NPX 详解
# 1. 什么是 NPX?
NPX 是 npm 5.2+ 版本引入的一个工具,用于执行 npm 包中的命令行工具或其他可执行文件。它的主要目的是简化 npm 包的执行过程。
# 2. 主要功能
## 2.1 直接执行远程包
```bash
无需安装即可执行包
npx create-react-app my-app
执行指定版本
npx cowsay@2.0.0 "Hello"
```
## 2.2 执行本地安装的包
```bash
执行本地 node_modules/.bin 中的命令
npx prettier --write "*.js"
```
## 2.3 一次性使用
- 执行完成后自动删除
- 不污染全局环境
- 总是使用最新版本
# 3. 工作原理
1. **查找顺序**
- 首先在本地 node_modules/.bin 查找
- 然后在 PATH 环境变量中查找
- 最后从 npm 远程仓库下载
2. **临时安装**
- 下载到临时目录
- 使用后自动清理
- 不影响项目依赖
3. **缓存机制**
- 默认使用缓存
- 可以使用 --no-cache 禁用
- 缓存位置与 npm 相同
# 4. 常用场景
## 4.1 项目初始化
```bash
创建 React 项目
npx create-react-app my-app
创建 Vue 项目
npx @vue/cli create my-vue-app
创建 Next.js 项目
npx create-next-app my-next-app
```
## 4.2 开发工具
```bash
运行 prettier 格式化代码
npx prettier --write "**/*.js"
运行 eslint 检查代码
npx eslint .
运行本地开发服务器
npx http-server
```
## 4.3 构建工具
```bash
运行 webpack
npx webpack
运行 babel
npx babel src -d lib
```
# 5. 高级用法
## 5.1 指定 Node 版本
```bash
使用特定版本的 Node 运行命令
npx -p node@14 node --version
```
## 5.2 运行多个包
```bash
同时运行多个命令
npx -p package1 -p package2 command
```
## 5.3 使用不同的 registry
```bash
从特定源安装
npx --registry=https://registry.npm.taobao.org cowsay hello
```
# 6. 命令行选项
- `--no-install`: 只使用本地包
- `--ignore-existing`: 忽略本地包
- `--shell-auto-fallback`: 设置 shell 自动回退
- `-p, --package`: 指定要安装的包
- `--cache`: 设置缓存目录
- `--no-cache`: 禁用缓存
# 7. 最佳实践
## 7.1 临时使用场景
- 一次性工具
- 版本测试
- 快速试用
## 7.2 项目中的使用
- 开发依赖优先本地安装
- 使用 package.json 的 scripts
- 明确依赖版本
## 7.3 安全考虑
- 检查包的可信度
- 避免运行未知源的代码
- 使用 --package 指定确切版本
# 8. 常见问题
## 8.1 执行速度
- 首次运行较慢
- 可以使用缓存加速
- 考虑本地安装频繁使用的工具
## 8.2 版本控制
- 指定确切版本避免意外
- 使用 package.json 锁定版本
- 注意依赖的兼容性
## 8.3 网络问题
- 使用镜像源
- 提前下载常用包
- 处理离线场景