refactor(build): 调整依赖管理及构建配置

- 将部分依赖从 dependencies 移至 devDependencies,优化依赖分类
- 新增 peerDependencies,明确对外依赖版本范围,提升兼容性
- 修改 rollup 配置,将 peerDependencies 依赖也标记为外部依赖
- 移除 package.json 中的 prepublishOnly 脚本,简化发布流程
- 保持依赖版本一致性,减少潜在版本冲突风险
2.0
LiuJiaNan 2026-08-22 19:16:22 +08:00
parent 41fc5a2445
commit cb64d58b1e
2 changed files with 19 additions and 10 deletions

View File

@ -22,26 +22,19 @@
"scripts": { "scripts": {
"build": "rollup -c", "build": "rollup -c",
"build:watch": "rollup -c -w", "build:watch": "rollup -c -w",
"prepublishOnly": "npm run build",
"patch": "npm version patch", "patch": "npm version patch",
"minor": "npm version minor", "minor": "npm version minor",
"publish": "npm publish", "publish": "npm publish",
"postinstall": "echo 'Thanks for using our component library!'" "postinstall": "echo 'Thanks for using our component library!'"
}, },
"dependencies": { "dependencies": {
"@ahooksjs/use-url-state": "^3.5.1",
"@ant-design/icons": "^6.2.5",
"@ant-design/pro-components": "^3.1.14-6",
"@cqsjjb/jjb-common-lib": "latest", "@cqsjjb/jjb-common-lib": "latest",
"@wangeditor/editor": "^5.1.23", "@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-react": "^1.0.6", "@wangeditor/editor-for-react": "^1.0.6",
"ahooks": "^3.9.5",
"antd": "^6.4.4",
"dayjs": "^1.11.18", "dayjs": "^1.11.18",
"docx-preview": "^0.3.7", "docx-preview": "^0.3.7",
"exceljs": "^4.4.0", "exceljs": "^4.4.0",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
"react": "^18.3.1",
"react-pdf": "^10.2.0", "react-pdf": "^10.2.0",
"react-signature-canvas": "^1.1.0-alpha.2", "react-signature-canvas": "^1.1.0-alpha.2",
"throttle-debounce": "^5.0.2", "throttle-debounce": "^5.0.2",
@ -49,6 +42,9 @@
"x-data-spreadsheet": "^1.1.9" "x-data-spreadsheet": "^1.1.9"
}, },
"devDependencies": { "devDependencies": {
"@ahooksjs/use-url-state": "^3.5.1",
"@ant-design/icons": "^6.2.5",
"@ant-design/pro-components": "^3.1.14-6",
"@antfu/eslint-config": "^5.4.1", "@antfu/eslint-config": "^5.4.1",
"@babel/core": "^7.28.5", "@babel/core": "^7.28.5",
"@babel/preset-react": "^7.28.5", "@babel/preset-react": "^7.28.5",
@ -59,12 +55,23 @@
"@rollup/plugin-json": "^6.1.0", "@rollup/plugin-json": "^6.1.0",
"@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-node-resolve": "^16.0.3",
"@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-terser": "^0.4.4",
"ahooks": "^3.9.5",
"antd": "^6.4.4",
"eslint": "^9.37.0", "eslint": "^9.37.0",
"eslint-plugin-format": "^1.0.2", "eslint-plugin-format": "^1.0.2",
"eslint-plugin-react-hooks": "^7.0.0", "eslint-plugin-react-hooks": "^7.0.0",
"eslint-plugin-react-refresh": "^0.4.23", "eslint-plugin-react-refresh": "^0.4.23",
"glob": "^13.0.0", "glob": "^13.0.0",
"rollup": "^4.54.0", "rollup": "^4.54.0",
"react": "^18.3.1",
"typescript": "^5.9.3" "typescript": "^5.9.3"
},
"peerDependencies": {
"@ahooksjs/use-url-state": ">=3.5.1 <4",
"@ant-design/icons": ">=6.2.5 <7",
"@ant-design/pro-components": ">=3.1.14-6 <4",
"ahooks": ">=3.9.5 <4",
"antd": ">=6.4.4 <7",
"react": ">=18.3.1 <19"
} }
} }

View File

@ -289,9 +289,11 @@ const external = (id) => {
} }
// 4. npm 依赖包标记为外部 -> 不打包到 bundle 中 // 4. npm 依赖包标记为外部 -> 不打包到 bundle 中
// 原因:减少 bundle 体积,避免版本冲突,让消费者项目自己管理依赖 // dependencies 由组件库安装peerDependencies 由消费者提供,两者都应保留 import。
// 从 package.json 的 dependencies 中读取依赖列表 const dependencies = [
const dependencies = Object.keys(pkg.dependencies || {}); ...Object.keys(pkg.dependencies || {}),
...Object.keys(pkg.peerDependencies || {}),
];
return dependencies.some(dep => id === dep || id.startsWith(dep + '/')); return dependencies.some(dep => id === dep || id.startsWith(dep + '/'));
}; };