Skip to content

Commit 2a41f9f

Browse files
authored
fix: preview support custom-import-map (opentiny#1669)
1 parent 9147a71 commit 2a41f9f

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

packages/design-core/src/preview/src/preview/importMap.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
*
1111
*/
1212

13-
import { useEnv } from '@opentiny/tiny-engine-meta-register'
13+
import { useEnv, getMergeMeta } from '@opentiny/tiny-engine-meta-register'
1414
import { importMapConfig as importMapJSON } from '@opentiny/tiny-engine-common/js/importMap'
1515

1616
const importMap = {}
1717
const opentinyVueVersion = '~3.20'
1818

19-
function replacePlaceholder(v) {
19+
function replacePlaceholder(v, k) {
2020
const {
2121
VITE_CDN_TYPE,
2222
VITE_CDN_DOMAIN,
@@ -28,6 +28,14 @@ function replacePlaceholder(v) {
2828
const versionDelimiter = VITE_CDN_TYPE === 'npmmirror' && !isLocalBundle ? '/' : '@'
2929
const fileDelimiter = VITE_CDN_TYPE === 'npmmirror' && !isLocalBundle ? '/files' : ''
3030
const cdnDomain = isLocalBundle ? BASE_URL + VITE_LOCAL_IMPORT_PATH : VITE_CDN_DOMAIN
31+
const customImportMap = getMergeMeta('engine.config')?.importMap
32+
33+
if (customImportMap?.imports?.[k]) {
34+
return customImportMap.imports[k]
35+
.replace('${VITE_CDN_DOMAIN}', cdnDomain)
36+
.replace('${versionDelimiter}', versionDelimiter)
37+
.replace('${fileDelimiter}', fileDelimiter)
38+
}
3139

3240
return v
3341
.replace('${VITE_CDN_DOMAIN}', cdnDomain)
@@ -38,7 +46,7 @@ function replacePlaceholder(v) {
3846

3947
export const getImportMap = (scripts = {}) => {
4048
importMap.imports = {
41-
...Object.fromEntries(Object.entries(importMapJSON.imports).map(([k, v]) => [k, replacePlaceholder(v)])),
49+
...Object.fromEntries(Object.entries(importMapJSON.imports).map(([k, v]) => [k, replacePlaceholder(v, k)])),
4250
...scripts
4351
}
4452

0 commit comments

Comments
 (0)