Skip to content

Commit 03b23f4

Browse files
committed
fix: support importmap styles
1 parent ea83807 commit 03b23f4

3 files changed

Lines changed: 23 additions & 2 deletions

File tree

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,10 +189,14 @@ export function importMapLocalPlugin({
189189
const parsedImportMapConfig = Object.values(parsedImportMapLocalConfig.importMap.imports)
190190
.map((item) => extractInfo(item))
191191
.filter(Boolean)
192+
// 处理内置的物料样式,后续不再内置物料后,需要用户自行引入,相关逻辑也需要同步删除
193+
const parsedImportMapStylesConfig = Object.values(defaultImportMapConfig.importStyles || {})
194+
.map((item) => extractInfo(item))
195+
.filter(Boolean)
192196
const overriddenImportMap = parsedDefaultImportMapConfig.filter((item) => {
193197
return !parsedImportMapConfig.find((parsedItem) => parsedItem.packageName === item.packageName)
194198
})
195-
const combinedImportMapConfig = [...overriddenImportMap, ...parsedImportMapConfig]
199+
const combinedImportMapConfig = [...overriddenImportMap, ...parsedImportMapConfig, ...parsedImportMapStylesConfig]
196200

197201
if (combinedImportMapConfig.length === 0) {
198202
logger.warn('[import-map-local-plugin]: No CDN dependencies found or configured')

packages/canvas/DesignCanvas/src/importMap.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,20 @@ const getImportUrl = (pkgName: string) => {
2323
}
2424
}
2525

26+
// 获取样式文件的URL,后续去除物料内置逻辑之后,需要用户自行引入,相关逻辑也需要同步删除
27+
const getImportStyleUrl = (pkgName: string) => {
28+
const { VITE_CDN_TYPE, VITE_CDN_DOMAIN, VITE_LOCAL_CDN_PATH } = useEnv()
29+
const versionDelimiter = VITE_CDN_TYPE === 'npmmirror' && !VITE_LOCAL_CDN_PATH ? '/' : '@'
30+
const fileDelimiter = VITE_CDN_TYPE === 'npmmirror' && !VITE_LOCAL_CDN_PATH ? '/files' : ''
31+
32+
if (importMapConfig.importStyles[pkgName]) {
33+
return importMapConfig.importStyles[pkgName]
34+
.replace('${VITE_CDN_DOMAIN}', VITE_LOCAL_CDN_PATH || VITE_CDN_DOMAIN)
35+
.replace('${versionDelimiter}', versionDelimiter)
36+
.replace('${fileDelimiter}', fileDelimiter)
37+
}
38+
}
39+
2640
export function getImportMapData(canvasDeps = { scripts: [], styles: [] }) {
2741
// 以下内容由于区块WebComponent加载需要补充
2842
const blockRequire = {
@@ -32,7 +46,7 @@ export function getImportMapData(canvasDeps = { scripts: [], styles: [] }) {
3246
'@opentiny/vue-icon': getImportUrl('@opentiny/vue-icon'),
3347
'@opentiny/tiny-engine-builtin-component': getImportUrl('@opentiny/tiny-engine-builtin-component')
3448
},
35-
importStyles: []
49+
importStyles: [getImportStyleUrl('@opentiny/vue-theme')]
3650
}
3751

3852
// 以下内容由于物料协议不支持声明子依赖而@opentiny/vue需要依赖所以需要补充

packages/common/js/import-map.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,8 @@
1919
"@opentiny/vue-locale": "${VITE_CDN_DOMAIN}/@opentiny/vue-runtime${versionDelimiter}~3.20${fileDelimiter}/dist3/tiny-vue-locale.mjs",
2020
"@opentiny/vue-renderless/": "${VITE_CDN_DOMAIN}/@opentiny/vue-renderless${versionDelimiter}~3.20${fileDelimiter}/",
2121
"echarts": "${VITE_CDN_DOMAIN}/echarts${versionDelimiter}5.4.1${fileDelimiter}/dist/echarts.esm.js"
22+
},
23+
"importStyles": {
24+
"@opentiny/vue-theme": "${VITE_CDN_DOMAIN}/@opentiny/vue-theme${versionDelimiter}~3.20${fileDelimiter}/index.css"
2225
}
2326
}

0 commit comments

Comments
 (0)