码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • unplugin-vue-components和unplugin-auto-import插件


    unplugin-auto-import:自动按需引入 vue\vue-router\pinia 等的 api
    unplugin-vue-components:自动按需引入 第三方的组件库组件 和 我们自定义的组件

    使用此类插件,不需要手动编写import {xxx} from vue这样的代码了,提升开发效率。

    unplugin-auto-import 原理

    以 vue与vite为例,会读取文件中script部分的字符,以空白符进行间隔,如const a = getName() 会过滤一些指定的字符读取到 const 、 a 、getName这些字符串传入unplugin-auto-import 作为 name,那么在运行的时候只需要匹配name 是否与生效的自动导入API匹配,如果匹配则在vite启动的时候将对应的文件加入到运行环境中,并且生成全局ts声明。

    安装插件

    npm install -D unplugin-vue-components unplugin-auto-import
    
    • 1

    配置 vite.config.ts

    // vite.config.ts
    import AutoImport from 'unplugin-auto-import/vite'
    import Components from 'unplugin-vue-components/vite'
    
    export default {
      plugins: [
        // ...
          AutoImport({
            include: [
              /\.[tj]sx?$/, // .ts, .tsx, .js, .jsx
              /\.vue$/,
              /\.vue\?vue/, // .vue
              /\.md$/, // .md
              /\.\/src\/layouts/,
            ],
            dts: './auto-imports.d.ts',
            imports: [
              'vue',
              'vue-router',
              {
                'tdesign-vue-next': ['MessagePlugin', 'DialogPlugin'],
                '@vueuse/core': ['useToggle'],
              },
            ],
            dirs: ['./src/hooks', './src/utils', './src/store/modules/*.ts'],
            vueTemplate: true,
            eslintrc: {
              enabled: false, // Default `false`
              filepath: './.eslintrc-auto-import.json', // Default `./.eslintrc-auto-import.json`
              globalsPropValue: true, // Default `true`, (true | false | 'readonly' | 'readable' | 'writable' | 'writeable')
            },
          }),
          Components({
            dts: true,
            dirs: ['src/components'],
          }),
      ],
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    参考链接:
    https://juejin.cn/post/7086326589897572389
    https://juejin.cn/post/7062648728405934087

  • 相关阅读:
    (附源码)springboot跨境电商系统 毕业设计 211003
    【愚公系列】2022年07月 Go教学课程 023-Go容器之列表
    TensorFlow入门(十五、数据读取机制(2))
    OpenFeign集成Sentinel实现服务的熔断降级
    咨询第三方软件测试机构报价时,软件企业应该准备什么?
    Vue 3 第二十二章:组件十(组件高级特性-组件的渲染函数和JSX/TSX语法)
    大带宽服务器租用适用于哪些场景?
    面向对象技术--面向对象开发技术
    Sealos 是企业节省成本的终极武器
    Java:有哪些快速学习Java语言的技巧?
  • 原文地址:https://blog.csdn.net/Anyuegogogo/article/details/133526063
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号