提交qiming-dev-inject
This commit is contained in:
115
qiming-dev-inject/lib/help.js
Normal file
115
qiming-dev-inject/lib/help.js
Normal file
@@ -0,0 +1,115 @@
|
||||
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');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user