Skip to content

Commit 8719da5

Browse files
committed
fix: change by review comment
1 parent b5ed1d4 commit 8719da5

1 file changed

Lines changed: 32 additions & 22 deletions

File tree

packages/build/vite-config/src/localCdnFile/importMapLocalPlugin.js

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,30 @@ function getCdnPathNpmInfo(
136136
}
137137
}
138138

139+
function parseImportMapLocalConfig(importMapLocalConfig) {
140+
let parsedImportMapLocalConfig = importMapLocalConfig
141+
142+
if (!parsedImportMapLocalConfig || typeof parsedImportMapLocalConfig !== 'object') {
143+
logger.warn('[import-map-local-plugin]: Invalid importMapLocalConfig, using defaults')
144+
145+
parsedImportMapLocalConfig = { importMap: { imports: {} }, copy: {} }
146+
}
147+
148+
if (!parsedImportMapLocalConfig.importMap || typeof parsedImportMapLocalConfig.importMap !== 'object') {
149+
logger.warn('[import-map-local-plugin]: Invalid importMapConfig, using defaults')
150+
151+
parsedImportMapLocalConfig.importMap = { imports: {} }
152+
}
153+
154+
if (!parsedImportMapLocalConfig.copy || typeof parsedImportMapLocalConfig.copy !== 'object') {
155+
logger.warn('[import-map-local-plugin]: Invalid copyConfig, using defaults')
156+
157+
parsedImportMapLocalConfig.copy = {}
158+
}
159+
160+
return parsedImportMapLocalConfig
161+
}
162+
139163
/**
140164
* 本地化CDN插件
141165
* @param {Object} options - 配置选项
@@ -153,32 +177,18 @@ export function importMapLocalPlugin({
153177
cdnDir = 'local-cdn-static', // 构建目录中的CDN文件夹名称
154178
bundleTempDir = 'bundle-deps/local-cdn' // 临时存放下载的包的目录
155179
}) {
156-
let importMapConfig = importMapLocalConfig.importMap
157-
158-
if (!importMapConfig || typeof importMapConfig !== 'object') {
159-
logger.warn('[import-map-local-plugin]: Invalid importMapLocalConfig, using defaults')
160-
161-
importMapConfig = { imports: {}, copy: {} }
162-
}
163-
164-
if (!importMapConfig.imports || typeof importMapConfig.imports !== 'object') {
165-
logger.warn('[import-map-local-plugin]: Invalid importMapConfig, using defaults')
166-
167-
importMapConfig.imports = {}
168-
}
169-
170-
if (!importMapConfig.copy || typeof importMapConfig.copy !== 'object') {
171-
logger.warn('[import-map-local-plugin]: Invalid copyConfig, using defaults')
172-
173-
importMapConfig.copy = {}
174-
}
180+
let parsedImportMapLocalConfig = parseImportMapLocalConfig(importMapLocalConfig)
175181

176-
const copyConfig = importMapConfig.copy || {}
182+
const copyConfig = parsedImportMapLocalConfig.copy || {}
177183
const defaultImportMapConfig = JSON.parse(
178184
fs.readFileSync(path.resolve(process.cwd(), './node_modules/@opentiny/tiny-engine/dist/import-map.json'), 'utf-8')
179185
)
180-
const parsedDefaultImportMapConfig = Object.values(defaultImportMapConfig.imports).map((item) => extractInfo(item))
181-
const parsedImportMapConfig = Object.values(importMapConfig.imports).map((item) => extractInfo(item))
186+
const parsedDefaultImportMapConfig = Object.values(defaultImportMapConfig.imports)
187+
.map((item) => extractInfo(item))
188+
.filter(Boolean)
189+
const parsedImportMapConfig = Object.values(parsedImportMapLocalConfig.importMap.imports)
190+
.map((item) => extractInfo(item))
191+
.filter(Boolean)
182192
const overriddenImportMap = parsedDefaultImportMapConfig.filter((item) => {
183193
return !parsedImportMapConfig.find((parsedItem) => parsedItem.packageName === item.packageName)
184194
})

0 commit comments

Comments
 (0)