提交 dbb8f203 作者: 方治民

fix: 使用 unplugin-vue-components 来修复 uni easycom 在 APP 下的导入问题

上级 e2bfcc8a
import type { Plugin } from 'vite' import type { Plugin } from 'vite'
import colors from 'picocolors' import colors from 'picocolors'
import { configUniPlugin } from './uni' import { configUniPlugin } from './uni'
import { configAutoImportPlugin } from './autoImport' import { configImportPlugin } from './unplugin'
import pkg from '../../package.json' import pkg from '../../package.json'
export function createVitePlugins(viteEnv: ViteEnv) { export function createVitePlugins(viteEnv: ViteEnv) {
...@@ -18,11 +18,12 @@ export function createVitePlugins(viteEnv: ViteEnv) { ...@@ -18,11 +18,12 @@ export function createVitePlugins(viteEnv: ViteEnv) {
// plugins // plugins
const vitePlugins: (Plugin | Plugin[])[] = [] const vitePlugins: (Plugin | Plugin[])[] = []
// unplugin-auto-import
// unplugin-vue-components
vitePlugins.push(configImportPlugin())
// uni-app // uni-app
vitePlugins.push(configUniPlugin()) vitePlugins.push(configUniPlugin())
// unplugin-auto-import
vitePlugins.push(configAutoImportPlugin())
return vitePlugins return vitePlugins
} }
...@@ -3,6 +3,8 @@ import path from 'path' ...@@ -3,6 +3,8 @@ import path from 'path'
// https://github.com/antfu/unplugin-auto-import // https://github.com/antfu/unplugin-auto-import
import AutoImport from 'unplugin-auto-import/vite' import AutoImport from 'unplugin-auto-import/vite'
// https://github.com/antfu/unplugin-vue-components
import Components from 'unplugin-vue-components/vite'
/** /**
* unplugin-auto-import * unplugin-auto-import
...@@ -22,9 +24,18 @@ export function configAutoImportPlugin(): Plugin { ...@@ -22,9 +24,18 @@ export function configAutoImportPlugin(): Plugin {
'@/common/message': ['Message'], '@/common/message': ['Message'],
}, },
], ],
})
}
/**
* unplugin-vue-components
* @returns Plugin
*/
export function configComponentsImportPlugin(): Plugin {
return Components({
resolvers: [ resolvers: [
(name) => { (name: string) => {
// FIX: 修复 easycom 在 APP 下不生效问题 // FIX: 修复 easycom 在 APP 下不生效问题(原因不明
if (name.startsWith('fui-')) { if (name.startsWith('fui-')) {
return path.resolve(__dirname, `src/components/firstui/${name}/${name}.vue`).replaceAll('\\', '/') return path.resolve(__dirname, `src/components/firstui/${name}/${name}.vue`).replaceAll('\\', '/')
} }
...@@ -32,3 +43,7 @@ export function configAutoImportPlugin(): Plugin { ...@@ -32,3 +43,7 @@ export function configAutoImportPlugin(): Plugin {
], ],
}) })
} }
export function configImportPlugin(): Plugin[] {
return [configAutoImportPlugin(), configComponentsImportPlugin()]
}
...@@ -131,6 +131,7 @@ ...@@ -131,6 +131,7 @@
"terser": "^5.15.1", "terser": "^5.15.1",
"typescript": "^4.8.4", "typescript": "^4.8.4",
"unplugin-auto-import": "^0.11.2", "unplugin-auto-import": "^0.11.2",
"unplugin-vue-components": "^0.22.8",
"vite": "^3.1.6", "vite": "^3.1.6",
"vue-eslint-parser": "^9.1.0" "vue-eslint-parser": "^9.1.0"
}, },
......
...@@ -64,6 +64,7 @@ specifiers: ...@@ -64,6 +64,7 @@ specifiers:
terser: ^5.15.1 terser: ^5.15.1
typescript: ^4.8.4 typescript: ^4.8.4
unplugin-auto-import: ^0.11.2 unplugin-auto-import: ^0.11.2
unplugin-vue-components: ^0.22.8
vite: ^3.1.6 vite: ^3.1.6
vue: ^3.2.40 vue: ^3.2.40
vue-eslint-parser: ^9.1.0 vue-eslint-parser: ^9.1.0
...@@ -139,6 +140,7 @@ devDependencies: ...@@ -139,6 +140,7 @@ devDependencies:
terser: 5.15.1 terser: 5.15.1
typescript: 4.8.4 typescript: 4.8.4
unplugin-auto-import: 0.11.2_@vueuse+core@8.9.4 unplugin-auto-import: 0.11.2_@vueuse+core@8.9.4
unplugin-vue-components: 0.22.8_vue@3.2.40
vite: 3.1.6_ui7xi2lj2d7s7nt3l5kbarm4ea vite: 3.1.6_ui7xi2lj2d7s7nt3l5kbarm4ea
vue-eslint-parser: 9.1.0_eslint@8.25.0 vue-eslint-parser: 9.1.0_eslint@8.25.0
...@@ -1984,6 +1986,12 @@ packages: ...@@ -1984,6 +1986,12 @@ packages:
balanced-match: 1.0.2 balanced-match: 1.0.2
concat-map: 0.0.1 concat-map: 0.0.1
/brace-expansion/2.0.1:
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
dependencies:
balanced-match: 1.0.2
dev: true
/braces/3.0.2: /braces/3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'} engines: {node: '>=8'}
...@@ -4525,6 +4533,13 @@ packages: ...@@ -4525,6 +4533,13 @@ packages:
dependencies: dependencies:
brace-expansion: 1.1.11 brace-expansion: 1.1.11
/minimatch/5.1.0:
resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==}
engines: {node: '>=10'}
dependencies:
brace-expansion: 2.0.1
dev: true
/minimist-options/4.1.0: /minimist-options/4.1.0:
resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
engines: {node: '>= 6'} engines: {node: '>= 6'}
...@@ -6197,6 +6212,31 @@ packages: ...@@ -6197,6 +6212,31 @@ packages:
unplugin: 0.9.6 unplugin: 0.9.6
dev: true dev: true
/unplugin-vue-components/0.22.8_vue@3.2.40:
resolution: {integrity: sha512-Musnwdtr6uj9Zopo4oeh4lp9+fJ2ArXVDzSiZxF4YC9v+pLnasKVKEEAjdXuQQ3u3KtntVw6PCscyAt52eS75g==}
engines: {node: '>=14'}
peerDependencies:
'@babel/parser': ^7.15.8
vue: 2 || 3
peerDependenciesMeta:
'@babel/parser':
optional: true
dependencies:
'@antfu/utils': 0.5.2
'@rollup/pluginutils': 4.2.1
chokidar: 3.5.3
debug: 4.3.4
fast-glob: 3.2.12
local-pkg: 0.4.2
magic-string: 0.26.7
minimatch: 5.1.0
resolve: 1.22.1
unplugin: 0.9.6
vue: 3.2.40
transitivePeerDependencies:
- supports-color
dev: true
/unplugin/0.9.6: /unplugin/0.9.6:
resolution: {integrity: sha512-YYLtfoNiie/lxswy1GOsKXgnLJTE27la/PeCGznSItk+8METYZErO+zzV9KQ/hXhPwzIJsfJ4s0m1Rl7ZCWZ4Q==} resolution: {integrity: sha512-YYLtfoNiie/lxswy1GOsKXgnLJTE27la/PeCGznSItk+8METYZErO+zzV9KQ/hXhPwzIJsfJ4s0m1Rl7ZCWZ4Q==}
dependencies: dependencies:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论