自动导入插件unplugin-auto-import/unplugin-vue-components

原文地址: devpress.csdn.net/vue/66cd509...

1. unplugin-auto-import(自动导入API)

安装: npm i -D unplugin-auto-import

配置:

ts 复制代码
// vite.config.ts
import AutoImport from 'unplugin-auto-import/vite'

export default defineConfig({
  plugins: [
    AutoImport({ /* options */ }),
  ],
})

options详细配置:

配置解析

  1. dirs: 目录下模块导出的自动导入。默认情况下,它只扫描目录下的一级模块,我们可以添加一些通配符来做筛选,限定到指定目录,或者到src 都可以做到自动引入,但是为了精确化查找,建议匹配越精准越好
ts 复制代码
 // 配置本地目录 自动引入
  dirs: ['./src/utils/**', './src/stores/**'],
 //dirs: ['./src/**'],
  1. dts: 生成相应.d.ts文件的文件路径。默认为""/在本地安装"typescript"时自动导入.d.ts。
ts 复制代码
 dts: './auto-imports.d.ts',
  1. imports: 需要全局引入的

示例

without

ts 复制代码
import { computed, ref } from 'vue'

const count = ref(0)
const doubled = computed(() => count.value * 2)

with

ts 复制代码
const count = ref(0)
const doubled = computed(() => count.value * 2)

without

ts 复制代码
import {f1} from '@/utils'
f1();

with

ts 复制代码
f1();

without

ts 复制代码
import {concat} from 'lodash';
console.log(concat([1, 2], [3]))

with

ts 复制代码
console.log(concat([1, 2], [3]))

without

ts 复制代码
import { useState } from 'react'

export function Counter() {
  const [count, setCount] = useState(0)
  return <div>{ count }</div>
}

with

ts 复制代码
export function Counter() {
  const [count, setCount] = useState(0)
  return <div>{ count }</div>
}

2. unplugin-vue-components( 自动导入组件)

安装

ts 复制代码
npm i -D unplugin-vue-components

配置

这里我测试了一下,就算什么也不写,Components默认会自动引入 /src/components下的文件

ts 复制代码
// vite.config.ts
import Components from 'unplugin-vue-components/vite'

export default defineConfig({
  plugins: [
    Components({ /* options */ }),
  ],
})

你也可以再配置一些想自动引入的组件

dirs: ['./src/components', './src/index/components'],

如果害怕组件重名,可以加一个directoryAsNamespace的选项,这样自动导入的组件名称 包含目录 ,就会防止命名冲突

options 里面可以添加一些配置

  • 三方组件,也可以在这里进行自动引入
ts 复制代码
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
 
Components({
  // vue-components 内置了前端主流的resolve element antd
  resolvers: [ElementPlusResolver()],
  dirs: ['src/components'],
  // 组件名称 包含目录 ,防止命名冲突
  directoryAsNamespace: true,
}),

示例

without

相关推荐
现在没有牛仔了几秒前
小试牛刀,用electron+vue3做了一个文件归纳程序~
前端·electron
FogLetter2 分钟前
Prisma + Next.js 全栈开发初体验:像操作对象一样玩转数据库
前端·后端·next.js
知识分享小能手2 分钟前
React学习教程,从入门到精通, React教程:构建你的第一个 React 应用(1)
前端·javascript·vue.js·学习·react.js·ajax·前端框架
李剑一3 分钟前
别乱封装,你看出事儿了吧...
前端·vue.js
文心快码BaiduComate7 分钟前
新增Zulu-CLI、企业版对话支持自定义模型、一键设置自动执行、复用相同终端,8月新能力速览!
前端·后端·程序员
walking95710 分钟前
JavaScript 神技巧!从 “堆代码” 到 “写优雅代码”,前端人必看
前端·面试
前端西瓜哥15 分钟前
图形编辑器开发:基于矩阵的画布缩放和移动实现
前端
walking95715 分钟前
前端 er 收藏!高性价比 JS 工具库,轻量又强大
前端·面试
gongzemin24 分钟前
Vue 项目权限管理 路由 按钮权限
前端·vue.js
walking95732 分钟前
效率党必藏! JavaScript 自动化脚本,覆盖文件管理、天气查询、通知提醒(含详细 demo)
前端·面试