当前位置: 首页 > news >正文

vue,使用unplugin-auto-import避免反复import,按需自动引入

项目库:https://github.com/unplugin/unplugin-auto-import
参考:
https://juejin.cn/post/7012446423367024676
https://cloud.tencent.com/developer/article/2236166


背景:
vue3项目中,基本所有页面都会引入vue3框架的api,elementPlus手动引入组件也很麻烦
每个页面都import太繁琐了,有办法可以简化它吗
在这里插入图片描述

用到以下两个插件unplugin-auto-import和unplugin-vue-components


我的项目是vue3+vue-cli+webpack+js(如果是ts,自动导入组件还需要其他配置文件)

  • unplugin-auto-import
    自动识别代码中库或者API的调用,自动导入相应的模块,从而减少了手动导入的工作量,避免反复写import,但这也是按需自动引入,可以减少产物大小,方便很多

    unplugin-auto-import配置项
    imports: 自动导入的库列表,如 vue、vue-router
    dirs: 自动导入的目录
    dts: 生成的类型声明文件路径
    eslintrc: 生成的 ESLint 配置文件选项

    我的配置

    const AutoImport = require('unplugin-auto-import/webpack')
    const Components = require('unplugin-vue-components/webpack')
    const { ElementPlusResolver } = require('unplugin-vue-components/resolvers')
    const path = require('path')
    module.exports = defineConfig({configureWebpack: {plugins: [AutoImport({imports: ["vue", "vue-router","pinia"],//自动引入vue的ref、onmounted等,无需在页面中重复importdirs:['./src/api/modules/**','./src/store/**'],
    

    使用unplugin-auto-import前:

    <script setup>
    import { onMounted, nextTick, reactive, ref } from 'vue'
    import { useRouter } from 'vue-router'
    import { mainStore } from '@/store/pinia.js'
    import login from '@/api/modules/login'	 // 接口请求
    const store = mainStore()
    const router = useRouter()
    const data = reactive({isLoading: false,type: [{ name: '1111', value: 0 },{ name: '2222', value: 1 }]
    })

    使用unplugin-auto-import后:

    <script setup>
    const store = mainStore()
    const router = useRouter()
    const data = reactive({isLoading: false,type: [{ name: '1111', value: 0 },{ name: '2222', value: 1 }]
    })
    

    注意版本!!直接npm i安装的如下版本,按照官网配置会报错

    	//先前安装的版本"unplugin-auto-import": "^0.19.0","unplugin-vue-components": "^0.28.0",
    

    Module build failed: Error [ERR_REQUIRE_ESM]: require() of ES Module
    在这里插入图片描述

    TypeError: AutoImport is not a function
    在这里插入图片描述
    网上查的解决办法都是说得降低版本,需要回退版本
    回退之后的确可以正常跑了,但我不懂为什么版本高就得降,难道没有高版本的写法吗

    npm install unplugin-vue-components@0.25.2 --save-devnpm install unplugin-auto-import@0.16.1 --save-dev
    

    重新安装后可正常使用

  • unplugin-vue-components:自动导入组件



http://www.mrgr.cn/news/82382.html

相关文章:

  • DVWA靶场Insecure CAPTCHA(不安全验证)漏洞所有级别通关教程及源码审计
  • CentOS 8 上搭建SFTP服务
  • 如何自定义异常?项目中的异常是怎么处理的?全局异常拦截如何实现?
  • vue面试题|[2025-1-3]
  • Swift Combine 学习(六):自定义 Publisher 和 Subscriber
  • vite6+vue3+ts+prettier+eslint9配置前端项目(后台管理系统、移动端H5项目通用配置)
  • 解释下torch中的scatter_add_
  • ACL的注意事项
  • Kafka集群部署与安装
  • 爱死机第四季(秘密关卡)4KHDR国语字幕
  • Redis - 5 ( 18000 字 Redis 入门级教程 )
  • @Cacheable 注解爆红(不兼容的类型。实际为 java. lang. String‘,需要 ‘boolean‘)
  • 如何在notepad++里面,修改注释颜色
  • 2021年福建公务员考试申论试题(县级卷)
  • 4.Web安全——JavaScript基础
  • Unity2022接入Google广告与支付SDK、导出工程到Android Studio使用JDK17进行打包完整流程与过程中的相关错误及处理经验总结
  • BGP(Border Gateway Protocol)路由收集器
  • Python 数据可视化的完整指南
  • 拼多多手势验证码/某多多手势验证码
  • vscode,eslint的报错影响编译
  • 基于VSCode软件框架的RISC-V IDE MRS2正式上线发布
  • python: generate model and DAL using Oracle
  • 25年1月更新。Windows 上搭建 Python 开发环境:PyCharm 安装全攻略(文中有安装包不用官网下载)
  • 行为模式2.命令模式------灯的开关
  • 【数据库系统概论】绪论--复习
  • STM32 拓展 电源控制