fix: 修复 vite 打包时,分包策略问题导致构建循环引用问题

This commit is contained in:
XiaoDaiGua-Ray 2025-05-06 09:01:11 +08:00
parent ba6ceef0dc
commit 0f2193cc14
2 changed files with 13 additions and 13 deletions

View File

@ -1,5 +1,5 @@
export const chunksCopilot = (id: string) => {
const utilsLibOptions = 'src/utils'
export const chunksCopilot = () => {
const utilsLibOptions = ['src/utils']
const hooksLibOptions = [
'src/hooks/components',
'src/hooks/template',
@ -7,15 +7,15 @@ export const chunksCopilot = (id: string) => {
]
const nodeModulesOptions = ['node_modules']
// 是否为模板工程下的 utils 库
const isUtils = () => id.includes(utilsLibOptions)
// 是否为模板工程下的 hooks 库,不包含 node_modules 库
const isHooks = () =>
hooksLibOptions.some((option) => id.includes(option)) &&
!nodeModulesOptions.some((option) => id.includes(option))
// 是否为 node_modules 库
const isNodeModules = () =>
const isNodeModules = (id: string) =>
nodeModulesOptions.some((option) => id.includes(option))
// 是否为模板工程下的 utils 库
const isUtils = (id: string) =>
utilsLibOptions.some((option) => id.includes(option) && !isNodeModules(id))
// 是否为模板工程下的 hooks 库,不包含 node_modules 库
const isHooks = (id: string) =>
hooksLibOptions.some((option) => id.includes(option) && !isNodeModules(id))
return {
isUtils,

View File

@ -17,6 +17,7 @@ export default defineConfig(({ mode }) => {
appPrimaryColor,
base,
} = config
const { isUtils, isHooks, isNodeModules } = chunksCopilot()
const __APP_CFG__ = {
pkg: {
@ -71,18 +72,17 @@ export default defineConfig(({ mode }) => {
rollupOptions: {
output: {
manualChunks: (id) => {
const { isUtils, isHooks, isNodeModules } = chunksCopilot(id)
const index = id.includes('pnpm') ? 1 : 0 // 兼容 pnpm, yarn, npm 包管理器差异
if (isUtils()) {
if (isUtils(id)) {
return 'utils'
}
if (isHooks()) {
if (isHooks(id)) {
return 'hooks'
}
if (isNodeModules()) {
if (isNodeModules(id)) {
return id
.toString()
.split('node_modules/')[1]