diff --git a/packages/playground/ssr/src/components/ssr-image/ssr-image.vue b/packages/playground/ssr/src/components/ssr-image/ssr-image.vue new file mode 100644 index 0000000000000000000000000000000000000000..e7c4f17d70eb222ac41ce80011832a2a2074ba72 --- /dev/null +++ b/packages/playground/ssr/src/components/ssr-image/ssr-image.vue @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/packages/playground/ssr/src/pages/index/index.vue b/packages/playground/ssr/src/pages/index/index.vue index 81346eda7bd45606258149015f0f80a6c2335c79..727c7dc8a1b3904e2b0a0f70e94adc387dd8734a 100644 --- a/packages/playground/ssr/src/pages/index/index.vue +++ b/packages/playground/ssr/src/pages/index/index.vue @@ -2,6 +2,7 @@ + diff --git a/packages/uni-cli-shared/src/api.ts b/packages/uni-cli-shared/src/deps.ts similarity index 55% rename from packages/uni-cli-shared/src/api.ts rename to packages/uni-cli-shared/src/deps.ts index bf4e3369e7858d86af1cc5628b3e39ffae511a54..d9ef8e4284739d6a1a5a9f654926e4572c1fa916 100644 --- a/packages/uni-cli-shared/src/api.ts +++ b/packages/uni-cli-shared/src/deps.ts @@ -1,6 +1,6 @@ import { BASE_COMPONENTS_STYLE_PATH, H5_API_STYLE_PATH } from './constants' -export const API_STYLES = { +export const API_DEPS_CSS = { showModal: [`${H5_API_STYLE_PATH}/modal.css`], showToast: [`${H5_API_STYLE_PATH}/toast.css`], showActionSheet: [`${H5_API_STYLE_PATH}/action-sheet.css`], @@ -12,3 +12,16 @@ export const API_STYLES = { ], openLocation: [`${H5_API_STYLE_PATH}/location-view.css`], } + +const RESIZE_SENSOR_CSS = BASE_COMPONENTS_STYLE_PATH + 'resize-sensor.css' + +export const COMPONENT_DEPS_CSS = { + canvas: [RESIZE_SENSOR_CSS], + image: [RESIZE_SENSOR_CSS], + 'movable-area': [RESIZE_SENSOR_CSS], + 'picker-view': [RESIZE_SENSOR_CSS], + 'picker-view-column': [RESIZE_SENSOR_CSS], + 'rich-text': [RESIZE_SENSOR_CSS], + textarea: [RESIZE_SENSOR_CSS], + 'web-view': [RESIZE_SENSOR_CSS], +} diff --git a/packages/uni-cli-shared/src/index.ts b/packages/uni-cli-shared/src/index.ts index fad767dec14fa99703e61d339c57659573d23a12..6370a0953fc386e7eeb8bc5b64e36631a44a2042 100644 --- a/packages/uni-cli-shared/src/index.ts +++ b/packages/uni-cli-shared/src/index.ts @@ -1,7 +1,7 @@ -export * from './api' export * from './ssr' export * from './uni' export * from './url' +export * from './deps' export * from './json' export * from './utils' export * from './constants' diff --git a/packages/vite-plugin-uni/src/configResolved/plugins/easycom.ts b/packages/vite-plugin-uni/src/configResolved/plugins/easycom.ts index 659139dcc621c5f9632361a5c157b103100324b4..9436bb2d6de3b3e421c757a888107f7065d3424a 100644 --- a/packages/vite-plugin-uni/src/configResolved/plugins/easycom.ts +++ b/packages/vite-plugin-uni/src/configResolved/plugins/easycom.ts @@ -8,6 +8,7 @@ import { EXTNAME_VUE, H5_COMPONENTS_STYLE_PATH, BASE_COMPONENTS_STYLE_PATH, + COMPONENT_DEPS_CSS, parseVueRequest, } from '@dcloudio/uni-cli-shared' @@ -48,17 +49,6 @@ const baseComponents = [ 'view', ] -const resizeComponents = [ - 'canvas', - 'image', - 'movable-area', - 'picker-view', - 'picker-view-column', - 'rich-text', - 'textarea', - 'web-view', -] - export function uniEasycomPlugin(options: UniPluginFilterOptions): Plugin { const filter = createFilter(options.include, options.exclude) return { @@ -110,11 +100,6 @@ function addBuiltInImportDeclaration( local: string, name: string ) { - if (resizeComponents.includes(name)) { - importDeclarations.push( - `import '${BASE_COMPONENTS_STYLE_PATH + 'resize-sensor.css'}';` - ) - } if (baseComponents.includes(name)) { importDeclarations.push( `import '${BASE_COMPONENTS_STYLE_PATH + name + '.css'}';` @@ -124,6 +109,10 @@ function addBuiltInImportDeclaration( `import '${H5_COMPONENTS_STYLE_PATH + name + '.css'}';` ) } + const deps = COMPONENT_DEPS_CSS[name as keyof typeof COMPONENT_DEPS_CSS] + if (deps) { + deps.forEach((dep) => importDeclarations.push(`import '${dep}';`)) + } return addImportDeclaration( importDeclarations, local, diff --git a/packages/vite-plugin-uni/src/configResolved/plugins/index.ts b/packages/vite-plugin-uni/src/configResolved/plugins/index.ts index a4801135536707b135d6a9a94fe07e88af8b4f50..e7854483d1b694ad404dc2c00b944c64411f5f77 100644 --- a/packages/vite-plugin-uni/src/configResolved/plugins/index.ts +++ b/packages/vite-plugin-uni/src/configResolved/plugins/index.ts @@ -4,7 +4,7 @@ import { Plugin, ResolvedConfig } from 'vite' import { FilterPattern } from '@rollup/pluginutils' import vue from '@vitejs/plugin-vue' -import { API_STYLES } from '@dcloudio/uni-cli-shared' +import { API_DEPS_CSS } from '@dcloudio/uni-cli-shared' import { VitePluginUniResolvedOptions } from '../..' import { uniPrePlugin } from './pre' @@ -72,7 +72,7 @@ const uniInjectPluginOptions: Partial = { callback(imports, mod) { const styles = mod[0] === '@dcloudio/uni-h5' && - API_STYLES[mod[1] as keyof typeof API_STYLES] + API_DEPS_CSS[mod[1] as keyof typeof API_DEPS_CSS] if (!styles) { return } diff --git a/packages/vite-plugin-uni/src/configResolved/plugins/pagesJson.ts b/packages/vite-plugin-uni/src/configResolved/plugins/pagesJson.ts index 9088cb855612b94091f569e63e3a4a53ecac5679..d73b6cac770950cc5014521f0f4c5eea1410f369 100644 --- a/packages/vite-plugin-uni/src/configResolved/plugins/pagesJson.ts +++ b/packages/vite-plugin-uni/src/configResolved/plugins/pagesJson.ts @@ -8,7 +8,7 @@ import { H5_FRAMEWORK_STYLE_PATH, BASE_COMPONENTS_STYLE_PATH, normalizePagesJson, - API_STYLES, + API_DEPS_CSS, } from '@dcloudio/uni-cli-shared' import { VitePluginUniResolvedOptions } from '../..' import { FEATURE_DEFINES } from '../../utils' @@ -147,8 +147,8 @@ function generateCssCode( } if (options.command === 'serve') { // 开发模式,自动添加所有API相关css - Object.keys(API_STYLES).forEach((name) => { - const styles = API_STYLES[name as keyof typeof API_STYLES] + Object.keys(API_DEPS_CSS).forEach((name) => { + const styles = API_DEPS_CSS[name as keyof typeof API_DEPS_CSS] styles.forEach((style) => { if (!cssFiles.includes(style)) { cssFiles.push(style)