首页 > 其他分享 >自动导入unplugin-auto-import+unplugin-vue-components

自动导入unplugin-auto-import+unplugin-vue-components

时间:2024-07-24 16:57:33浏览次数:13  
标签:vue auto ts unplugin 导入 components import

文章介绍

接下来将会以Vite + Vue3 + TS的项目来举例实现

在我们进行项目开发时,无论是声明响应式数据使用的ref、reactive,或是各种生命周期,又或是computed、watch、watchEffect、provide-inject。这些都需要前置引入才能使用:

import { ref, reactive, onMounted, watch, provide} from 'vue'

除了以上这些功能相关的模块外,我们还会涉及到对组件的引用,比如熟知的新建一个项目都会有这两个文件:App.vue 和 HelloWorld.vue,也会在App.vue中看到以下代码:

import HelloWorld from './components/HelloWorld.vue'

这里只是导入了一个组件,如果一个页面由多个组件构成,那将会有很多个 import

现在有两个兄弟可以帮助我们完成自动化引入,无论是上述说的功能模块 or 组件

unplugin-auto-import:可按需自动导入模块,譬如上述的ref、watch等

unplugin-vue-components:自动导入vue的非插件组件,譬如上述的HelloWorld

不知道大家有没有使用过Element+,也就是ElementPlus,在它的按需导入中,有这样的说明

我们要用的也就是这兄弟俩

插件介绍

安装

可以从npm看到两个依赖的一些功能介绍:

npm依赖介绍:unplugin-auto-import - npm (npmjs.com)

npm依赖介绍:unplugin-vue-components - npm (npmjs.com)  

在npm的介绍中还可以看到它对于UI组件库的支持范围还是很广泛的:

这里我采用pnpm作为包管理工具,大家可以根据自己的情况来调整安装方式 

pnpm install -D unplugin-vue-components unplugin-auto-import

除了安装这两个插件之外,为了更好的演示组件的免导入,我这里安装Element+

pnpm install element-plus

配置 

我的项目是vite构建,所以对应的项目构建配置文件是vite.config.ts

为方便管理插件配置,我通常会把插件配置写到一个单独的文件中,再到vite.config.ts中引入,大家可以直接写到配置文件中。

因为要用Element组件库做组件免导入的演示,所以下面配置了ElementPlusResolver相关代码,这块代码大家在Element+的按需导入说明中可以看到;其他配置可以从npm依赖介绍中查看。

// /config/plugin/index.ts
import vue from '@vitejs/plugin-vue';
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';

export function vitePluginsConfig(command = 'serve') {
  return [
    vue({ include: [/\.vue$/, /\.md$/] }),
    AutoImport({
      imports: ['vue'],
      resolvers: [ElementPlusResolver()],
      dts: 'types/auto-imports.d.ts' // 会在根目录下的types目录中生成该文件——记录自动导入了哪些模块
    }),
    Components({
      dirs: ['src'],
      dts: 'types/auto-components.d.ts', // 会在根目录下的types目录中生成该文件——记录自动导入了哪些组件
      resolvers: [ElementPlusResolver()] 
    }),
  ];
}
// vite.config.ts
import { vitePluginsConfig } from './config/plugin'
import { defineConfig } from 'vite'

export default defineConfig({
  plugins: vitePluginsConfig()
})

演示

接下来启动项目,就可以免去 ref 的引用以及 HelloWord 的导入操作了

在没有做全局引入的情况下,HellowWorld 和 el-button 依旧可正常显示 。

 打开自动生成的auto-components.d.ts后可以看到 HelloWorld 和 el-button 已经被自动导入:

 问题 

项目中使用到了Typescript 和 Eslint,以至于这里报错:找不到名称“ref”

这个错误可能会由 ts 提出,也可能由eslint 提出。

该问题会在下一篇文章来说明如何处理。 

标签:vue,auto,ts,unplugin,导入,components,import
From: https://blog.csdn.net/qq_38800316/article/details/140661475

相关文章

  • vue的侦听器/表单输入绑定和模板引用
    1.侦听器侦听器在修改数据过程中,实时的侦听数据,将修改前数据和修改后数据记录2.表单输入绑定在input标签中输入v-model指令可以实时的显示input标签中输入的内容,v-model.lazy指令为不实时显示,在input标签中输入的内容用鼠标点击空白页面或ENTER后显示3.模板引用直接读取DOM......
  • RkAiq(Rk Auto Image Quality)模块讲解
    RkAiq模块是一个用于图像质量优化和处理的库,通常用于图像信号处理(ISP)框架中,特别是在摄像头应用中。RkAiq代表"RockchipAIImageQuality",它由Rockchip开发,旨在利用人工智能和先进的算法来提升图像质量。概述ISP30包含了一系列的图像处理算法模块,主要包括:暗电流矫正、坏点矫......
  • vue的数组变化侦测/计算属性/Class绑定/Style绑定
    1.数组变化侦测效果图单击push按钮后可增加其内容,直接显示在页面中单击concat按钮后修改数组,不直接显示在页面中,将数组赋值后显示addArrayt(){//不引起ul自动更新this.names.concat(["sakura"])//若不赋值则无法显示this.names=this.names.concat(["sakura"])}2.计......
  • 【计算机毕业设计】ssm499智能社区管理系统的设计与实现+vue
    现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本智能社区管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达......
  • 【vue前端项目实战案例】Vue仿京东商城App
    本文将介绍一款仿“京东商城”商品信息展示的电商类App。该案例是基于Vue2.0+VueRouter+webpack+ES6等技术栈实现的一款App,很适合初学者进行学习。项目源码在文章末尾1项目概述项目是一款仿“京东商城”的商品信息展示的App,主要实现了以下功能。商城首页轮......
  • 计算机项目/基于Spring Boot+Vue的生活用品购物平台设计与实现/毕设/网站健身
    基于SpringBoot+Vue的生活用品购物平台设计与实现摘要:生活用品购物平台系统采用SpringBoot作为后端框架,提供高效的数据处理和业务逻辑实现;前端使用Vue.js,通过其响应式数据绑定和组件化开发,使得用户界面更具交互性和可扩展性,选择MySQL数据库存储数据。系统分为用户模块和管......
  • ADAU1761的AVC音效算法详解(Automatic Volume Control)
    作者的话AVC,AutomaticVolumeControl,自动音量控制,这是一个很有特点的算法,我们来看看他在哪里?怎么去用。硬件准备ADAU1761开发板产品链接:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5192690539.11.28686332WA8nC3&id=38240607959USBi仿真器产品链接:https:......
  • 【计算机毕业设计】ssm485科研经费管理系统研究与开发+vue
    身处网络时代,随着网络系统体系发展的不断成熟和完善,人们的生活也随之发生了很大的变化,人们在追求较高物质生活的同时,也在想着如何使自身的精神内涵得到提升,而读书就是人们获得精神享受非常重要的途径。为了满足人们随时随地只要有网络就可以看书的要求,科研经费管理系统被开......
  • vue.extend中动态加入组件之后组件中的点击事件不能用
    vue.extend中动态加入组件之后组件中的点击事件不能用在Vue.js中,如果你在vue.extend中动态地添加了一个组件,并且发现这个组件的点击事件无法触发,可能的原因和解决方法如下:原因:事件绑定没有正确执行。事件绑定的元素在组件加载时不存在。事件绑定的元素在点击事件被绑定时已......
  • 后端开发工程师vue2初识的学习
    博客主页:音符犹如代码系列专栏:JavaWeb关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞......