@zhaogyna/rollup-plugin
v1.0.1
Published
Rollup plugin for Monitor SDK SourceMap debug ID injection
Readme
@zhaogyna/rollup-plugin
Rollup 构建插件,为产物注入 debugId 并上传 SourceMap 到监控平台,实现生产环境错误堆栈还原。
安装
npm install -D @zhaogyna/rollup-pluginpeerDependencies:
rollup >= 3.0.0
使用
// rollup.config.mjs
import { monitorRollupPlugin } from '@zhaogyna/rollup-plugin'
export default {
plugins: [
monitorRollupPlugin({
uploadUrl: 'https://monitor.example.com/api/sourcemap',
project: 'my-app',
authToken: 'your-auth-token',
release: process.env.APP_VERSION,
uploadSourceMaps: true,
}),
],
}配置项
| 选项 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| uploadUrl | string | - | Monitor 服务端 SourceMap 上传 URL |
| project | string | - | 项目标识 |
| authToken | string | - | 认证 Token,以 Authorization: Bearer <token> 方式发送 |
| release | string | - | Release 版本号,需与 init({ release }) 一致 |
| uploadSourceMaps | boolean | true | 是否上传 SourceMap |
工作原理
- generateBundle 钩子:遍历 entry chunk,生成
debugId,在chunk.code头部注入//# debugId=<uuid>注释;同时收集 SourceMap 文件 - writeBundle 钩子:将收集的 SourceMap 通过
multipart/form-dataPOST 上传到uploadUrl
上传失败不影响构建流程,仅 console.warn 提示。
注意事项
- 仅处理
chunk.isEntry的 entry chunk - 需要 Node.js 18+(使用内置
fetch) - 确保
release与init({ release })中传入的值一致
License
MIT
