{"_id":"@51jbs/spec-plugin","name":"@51jbs/spec-plugin","dist-tags":{"latest":"2.0.0"},"versions":{"2.0.0":{"name":"@51jbs/spec-plugin","version":"2.0.0","description":"Webpack plugin for checking code specifications including naming, performance, and best practices","main":"dist/index.js","types":"dist/index.d.ts","keywords":["webpack","plugin","spec","lint","performance","code-quality"],"author":{"name":"Chuanjing Li"},"license":"MIT","peerDependencies":{"webpack":"^5.0.0"},"dependencies":{"chalk":"^4.1.2","fast-glob":"^3.3.2","fs-extra":"^11.2.0","image-size":"^1.1.1","simple-git":"~3.15.1"},"devDependencies":{"@types/node":"^20.11.5","@vitest/coverage-v8":"^1.6.1","typescript":"^5.3.3","vitest":"^1.2.0","webpack":"^5.89.0"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc","dev":"tsc --watch","test":"vitest","test:coverage":"vitest --coverage"},"_id":"@51jbs/spec-plugin@2.0.0","_integrity":"sha512-mGTyng+bPYYdSsdMOAZXF4m0X9mUUedvEGEJFl34xdx1MsfG5F6obdZ+nW3XM8qJ6WgchcJ0fPanxb4gCB+qqQ==","_resolved":"/tmp/2e2184abbf5c1809d560dc587836f644/51jbs-spec-plugin-2.0.0.tgz","_from":"file:51jbs-spec-plugin-2.0.0.tgz","_nodeVersion":"20.19.6","_npmVersion":"10.8.2","dist":{"integrity":"sha512-mGTyng+bPYYdSsdMOAZXF4m0X9mUUedvEGEJFl34xdx1MsfG5F6obdZ+nW3XM8qJ6WgchcJ0fPanxb4gCB+qqQ==","shasum":"56572c26d53fb17ecc0282cdffd094733801b1ff","tarball":"https://registry.npmjs.org/@51jbs/spec-plugin/-/spec-plugin-2.0.0.tgz","fileCount":55,"unpackedSize":259475,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIETnpc1p6G6Sc5+ivvLESDv1BmoXb+uFxqDsK5SzzqRwAiEAydIR+lgm2zy8EtEcCPZAWihsIPyqgZyHiQX/wHDbBU0="}]},"_npmUser":{"name":"chuanjing729","email":"chuanjing729@gmail.com"},"directories":{},"maintainers":[{"name":"chuanjing729","email":"chuanjing729@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/spec-plugin_2.0.0_1766373178438_0.5823988967682054"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-22T03:12:58.335Z","2.0.0":"2025-12-22T03:12:58.590Z","modified":"2025-12-22T03:12:58.958Z"},"maintainers":[{"name":"chuanjing729","email":"chuanjing729@gmail.com"}],"description":"Webpack plugin for checking code specifications including naming, performance, and best practices","keywords":["webpack","plugin","spec","lint","performance","code-quality"],"author":{"name":"Chuanjing Li"},"license":"MIT","readme":"# @51jbs/spec-plugin\n\n> 🛡 **前端工程规范守卫**: 基于 Webpack 的深度规范检查工具，从命名规范到运行时安全，全方位保障代码质量。\n\n`@51jbs/spec-plugin` 是一款专为企业级前端项目设计的工程规范检查插件。它不仅关注传统的 Lint 问题，更深入业务场景，提供包括 **BEM 命名校验**、**空安全防护**、**内存泄漏检测** 以及 **性能预算审计** 在内的 20+ 项核心检查规则。\n\n## ✨ 核心特性\n\n- **🚀 极速增量检查**: 默认采用增量模式，仅针对 Git 变更文件进行校验，毫秒级反馈。\n- **📊 20+ 深度校验规则**:\n    - **规范类**: BEM 校验、文件命名规范、变量命名对齐。\n    - **安全类**: 空安全检查 (Optional Chaining)、API 安全调用、XSS 防护。\n    - **性能类**: 图片及静态资源体积审计、JS/CSS 预算监控。\n    - **架构类**: 模块边界控制 (Boundary Check)、依赖关系合法性检查。\n- **🎯 存量代码基线 (Baseline)**: 支持通过基线机制忽略存量问题，让规范治理能够灰度落地。\n- **� 多维报表展示**: 提供详细的终端 Console 报告及交互式 HTML 可视化看板。\n\n## 📦 安装\n\n```bash\npnpm add -D @51jbs/spec-plugin\n```\n\n## 🚀 快速接入\n\n### Webpack 配置\n\n```javascript\nconst SpecPlugin = require('@51jbs/spec-plugin');\n\nmodule.exports = {\n  plugins: [\n    new SpecPlugin({\n      // 检查模式：'incremental' (增量) | 'full' (全量)\n      mode: 'incremental',\n      \n      // 性能预算\n      performanceBudget: {\n        maxImageSize: 500, // KB\n        maxJsSize: 300     // KB\n      },\n      \n      // 启用基线机制 (忽略存量)\n      useBaseline: true,\n      \n      // 是否生成 HTML 报告\n      htmlReport: true\n    })\n  ]\n};\n```\n\n## � 配置选项 (Options)\n\n| 选项 | 类型 | 默认值 | 说明 |\n|------|------|--------|------|\n| `mode` | `string` | `'incremental'` | 检查模式：`incremental` 或 `full`。 |\n| `severity` | `string` | `'normal'` | 严重级别。`strict` 会在有错误或警告时中断构建。 |\n| `useBaseline` | `boolean` | `false` | 是否启用基线文件，忽略存量已知问题。 |\n| `htmlReport` | `boolean` | `true` | 是否生成可视化 HTML 报告。 |\n| `exclude` | `string[]` | `['node_modules', ...]` | 排除的文件范围。 |\n\n## 📝 许可证\n\nMIT","readmeFilename":"README.md","_rev":"1-a390765beab57c446ae56eada0235447"}