5.8 KiB
5.8 KiB
CLI 功能本地测试指南
本文档说明如何在本地测试 @xagi/vite-plugin-design-mode 的 CLI 安装和卸载功能。
前置准备
- 确保项目已安装依赖:
npm install
- 构建项目(编译 TypeScript 到 dist 目录):
npm run build
这会编译所有源代码到 dist/ 目录,包括 CLI 文件。
测试方法
方法 1: 使用 npm link(推荐)
这是最接近真实使用场景的测试方法。
步骤 1: 在项目根目录创建链接
# 在项目根目录执行
npm link
这会在全局创建一个符号链接,指向当前项目。
步骤 2: 在测试项目中链接插件
# 进入测试项目目录(例如 examples/demo)
cd examples/demo
# 链接插件
npm link @xagi/vite-plugin-design-mode
步骤 3: 测试安装命令
# 在测试项目目录执行
npx @xagi/vite-plugin-design-mode install
步骤 4: 测试卸载命令
# 在测试项目目录执行
npx @xagi/vite-plugin-design-mode uninstall
方法 2: 直接使用 node 运行编译后的文件
如果不想使用 npm link,可以直接运行编译后的 CLI 文件。
步骤 1: 构建项目
npm run build
步骤 2: 在测试项目中运行 CLI
# 进入测试项目目录
cd examples/demo
# 直接运行编译后的 CLI 文件
node ../../packages/plugin/dist/cli/index.js install
# 或
node ../../packages/plugin/dist/cli/index.js uninstall
方法 3: 使用 tsx 直接运行 TypeScript 文件(开发调试)
在开发过程中,可以使用 tsx 直接运行 TypeScript 文件,无需先编译。
安装 tsx(如果还没有)
npm install -g tsx
# 或
npm install --save-dev tsx
运行 CLI
# 在项目根目录
tsx packages/plugin/src/cli/index.ts install
# 或指定工作目录为测试项目
cd examples/demo
tsx ../../packages/plugin/src/cli/index.ts install
完整测试流程示例
以下是在 examples/demo 项目中完整测试安装和卸载的流程:
1. 准备测试环境
# 在项目根目录构建
npm run build
# 进入测试项目
cd examples/demo
# 备份当前的 vite.config.ts(可选)
cp vite.config.ts vite.config.ts.backup
# 备份 package.json(可选)
cp package.json package.json.backup
2. 测试安装功能
# 方法 A: 使用 npm link
npm link @xagi/vite-plugin-design-mode
npx @xagi/vite-plugin-design-mode install
# 方法 B: 直接运行编译后的文件
node ../../packages/plugin/dist/cli/index.js install
# 方法 C: 使用 tsx(开发时)
tsx ../../packages/plugin/src/cli/index.ts install
验证安装结果:
- 检查
package.json中是否添加了@xagi/vite-plugin-design-mode依赖 - 检查
vite.config.ts中是否添加了:import appdevDesignMode from '@xagi/vite-plugin-design-mode';appdevDesignMode()在 plugins 数组中
3. 测试卸载功能
# 使用相同的方法运行卸载命令
npx @xagi/vite-plugin-design-mode uninstall
# 或
node ../../packages/plugin/dist/cli/index.js uninstall
# 或
tsx ../../packages/plugin/src/cli/index.ts uninstall
验证卸载结果:
- 检查
package.json中是否移除了@xagi/vite-plugin-design-mode依赖 - 检查
vite.config.ts中是否移除了:- import 语句
appdevDesignMode()调用
4. 恢复测试环境(可选)
# 如果需要恢复到原始状态
cp vite.config.ts.backup vite.config.ts
cp package.json.backup package.json
测试不同场景
场景 1: 全新安装(插件未安装)
- 确保测试项目的
package.json中没有@xagi/vite-plugin-design-mode - 确保
vite.config.ts中没有相关配置 - 运行
install命令 - 验证插件已安装且配置已添加
场景 2: 升级已安装的插件
- 先在测试项目中安装旧版本(如果有)
- 运行
install命令 - 验证插件已升级到最新版本
场景 3: 卸载已安装的插件
- 确保插件已安装
- 运行
uninstall命令 - 验证插件和配置都已移除
场景 4: 测试不同的包管理器
在不同使用不同包管理器的项目中测试:
# npm 项目
cd examples/basic
node ../../packages/plugin/dist/cli/index.js install
# pnpm 项目
cd examples/demo # 如果有 pnpm-lock.yaml
node ../../packages/plugin/dist/cli/index.js install
# yarn 项目(如果有 yarn.lock)
node ../../packages/plugin/dist/cli/index.js install
调试技巧
查看详细输出
CLI 工具会输出详细的执行信息,包括:
- 检测到的包管理器
- 插件安装状态
- 执行的命令
- 配置文件修改情况
检查编译后的文件
确保 CLI 文件已正确编译:
# 检查 dist/cli 目录
ls -la dist/cli/
# 应该看到:
# - index.js
# - install.js
# - uninstall.js
常见问题排查
-
命令未找到
- 确保已运行
npm run build - 检查
packages/plugin/dist/cli/index.js是否存在 - 如果使用 npm link,确保已正确链接
- 确保已运行
-
权限问题
- 确保有写入
package.json和vite.config.ts的权限
- 确保有写入
-
配置文件格式问题
- CLI 会尝试处理不同的代码风格,但某些复杂格式可能需要手动调整
自动化测试脚本(可选)
可以创建一个测试脚本来自动化测试流程:
#!/bin/bash
# test-cli.sh
echo "构建项目..."
npm run build
echo "进入测试项目..."
cd examples/demo
echo "测试安装..."
node ../../packages/plugin/dist/cli/index.js install
echo "等待 2 秒..."
sleep 2
echo "测试卸载..."
node ../../packages/plugin/dist/cli/index.js uninstall
echo "测试完成!"
保存为 test-cli.sh,然后运行:
chmod +x test-cli.sh
./test-cli.sh