提交 dbb8f203 作者: 方治民

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

上级 e2bfcc8a
import type { Plugin } from 'vite'
import colors from 'picocolors'
import { configUniPlugin } from './uni'
import { configAutoImportPlugin } from './autoImport'
import { configImportPlugin } from './unplugin'
import pkg from '../../package.json'
export function createVitePlugins(viteEnv: ViteEnv) {
......@@ -18,11 +18,12 @@ export function createVitePlugins(viteEnv: ViteEnv) {
// plugins
const vitePlugins: (Plugin | Plugin[])[] = []
// unplugin-auto-import
// unplugin-vue-components
vitePlugins.push(configImportPlugin())
// uni-app
vitePlugins.push(configUniPlugin())
// unplugin-auto-import
vitePlugins.push(configAutoImportPlugin())
return vitePlugins
}
......@@ -3,6 +3,8 @@ import path from 'path'
// https://github.com/antfu/unplugin-auto-import
import AutoImport from 'unplugin-auto-import/vite'
// https://github.com/antfu/unplugin-vue-components
import Components from 'unplugin-vue-components/vite'
/**
* unplugin-auto-import
......@@ -22,9 +24,18 @@ export function configAutoImportPlugin(): Plugin {
'@/common/message': ['Message'],
},
],
})
}
/**
* unplugin-vue-components
* @returns Plugin
*/
export function configComponentsImportPlugin(): Plugin {
return Components({
resolvers: [
(name) => {
// FIX: 修复 easycom 在 APP 下不生效问题
(name: string) => {
// FIX: 修复 easycom 在 APP 下不生效问题(原因不明
if (name.startsWith('fui-')) {
return path.resolve(__dirname, `src/components/firstui/${name}/${name}.vue`).replaceAll('\\', '/')
}
......@@ -32,3 +43,7 @@ export function configAutoImportPlugin(): Plugin {
],
})
}
export function configImportPlugin(): Plugin[] {
return [configAutoImportPlugin(), configComponentsImportPlugin()]
}
......@@ -131,6 +131,7 @@
"terser": "^5.15.1",
"typescript": "^4.8.4",
"unplugin-auto-import": "^0.11.2",
"unplugin-vue-components": "^0.22.8",
"vite": "^3.1.6",
"vue-eslint-parser": "^9.1.0"
},
......
......@@ -64,6 +64,7 @@ specifiers:
terser: ^5.15.1
typescript: ^4.8.4
unplugin-auto-import: ^0.11.2
unplugin-vue-components: ^0.22.8
vite: ^3.1.6
vue: ^3.2.40
vue-eslint-parser: ^9.1.0
......@@ -139,6 +140,7 @@ devDependencies:
terser: 5.15.1
typescript: 4.8.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
vue-eslint-parser: 9.1.0_eslint@8.25.0
......@@ -1984,6 +1986,12 @@ packages:
balanced-match: 1.0.2
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:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
......@@ -4525,6 +4533,13 @@ packages:
dependencies:
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:
resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
engines: {node: '>= 6'}
......@@ -6197,6 +6212,31 @@ packages:
unplugin: 0.9.6
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:
resolution: {integrity: sha512-YYLtfoNiie/lxswy1GOsKXgnLJTE27la/PeCGznSItk+8METYZErO+zzV9KQ/hXhPwzIJsfJ4s0m1Rl7ZCWZ4Q==}
dependencies:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论