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)