Files
qiming/qiming-dev-inject/lib/help.js
2026-06-01 12:53:19 +08:00

116 lines
3.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { readFileSync } from 'fs';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';
export function showHelp() {
console.log(`
@xagi/dev-inject - 开发环境脚本注入工具
用法:
npx @xagi/dev-inject <命令> [选项]
或使用 pnpm:
pnpm dlx @xagi/dev-inject <命令> [选项]
命令:
install 注入脚本到 HTML 文件
uninstall 从 HTML 文件中移除注入的脚本
选项:
--remote <url|path> 脚本地址(可选,默认值: /sdk/dev-monitor.js
- 远程URL: http://localhost:9000/monitor.js
- 绝对路径: /scripts/monitor.js
--file <path> 指定要处理的 HTML 文件(可选)
- 如果不指定,会自动查找项目中的 HTML 文件
--dry-run 预览模式,显示将要执行的操作但不实际修改文件
--verbose 显示详细输出信息
--framework, -f 使用框架感知注入模式
- 自动检测 Vite、Next.js 等框架
- 使用最佳注入方式,无需手动修改 HTML
--help, -h 显示帮助信息
--version, -v 显示版本信息
示例:
# 静默安装(推荐,自动确认,无需交互)
npx -y @xagi/dev-inject install --framework
# 使用默认脚本地址 (/sdk/dev-monitor.js)
npx @xagi/dev-inject install
# 使用默认地址 + 框架感知注入
npx @xagi/dev-inject install --framework
# 传统 HTML 注入
npx @xagi/dev-inject install --remote=http://localhost:9000/dev-monitor.js
# 框架感知注入(推荐)
npx @xagi/dev-inject install --remote=http://localhost:9000/dev-monitor.js --framework
# Vite 项目自动注入
npx @xagi/dev-inject install --remote=/scripts/dev-monitor.js -f --verbose
# Next.js App Router 注入
npx @xagi/dev-inject install --remote=http://localhost:9000/dev-monitor.js --framework
# Next.js Pages Router 注入
npx @xagi/dev-inject install --remote=/scripts/dev-monitor.js -f
# 指定特定 HTML 文件(传统模式)
npx @xagi/dev-inject install --remote=/scripts/monitor.js --file=./public/index.html
# 使用 pnpm dlx
pnpm dlx @xagi/dev-inject install --remote=http://localhost:9000/dev-monitor.js --framework
# 预览将要执行的操作
npx @xagi/dev-inject install --remote=/scripts/monitor.js --framework --dry-run
# 移除框架注入
npx @xagi/dev-inject uninstall --framework
# 移除传统注入
npx @xagi/dev-inject uninstall
支持的脚本格式:
- 远程 HTTP/HTTPS URL
- 以 / 开头的绝对路径(相对于网站根目录)
框架支持:
🟢 Vite: 自动注入 Vite 插件到 vite.config.js
🟢 Next.js App Router: 注入到 app/layout.tsx
🟢 Next.js Pages Router: 注入到 pages/_document.tsx
🟢 Create React App: 注入到 public/index.html
🟢 传统 HTML: 直接修改 HTML 文件
框架注入优势:
✅ 自动检测项目类型
✅ 使用最佳注入方式
✅ 仅在开发环境生效
✅ 零侵入性修改
✅ 支持热重载
注意:
- 使用 --framework 会自动选择最佳注入方式
- 框架注入后需要重启开发服务器
- 传统模式脚本会被注入到 HTML 文件的 </head> 标签之前
- 重复执行 install 会自动替换之前的注入
- 使用 uninstall 可以完全移除所有注入的脚本
`);
}
export function showVersion() {
try {
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const packagePath = join(__dirname, '../package.json');
const packageJson = JSON.parse(readFileSync(packagePath, 'utf8'));
console.log(`@xagi/dev-inject v${packageJson.version}`);
} catch (error) {
console.log('@xagi/dev-inject v1.0.0');
}
}