vite.config.ts配置之自动导入element-puls方式

 更新时间:2023年10月10日 08:52:19   作者:成序猿@  
这篇文章主要介绍了vite.config.ts配置之自动导入element-puls方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

根据Elementplus UI 配置组件及样式的自动导入

自动导入推荐

首先你需要安装unplugin-vue-components 和 unplugin-auto-import这两款插件

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

然后把下列代码插入到你的 Vite 或 Webpack 的配置文件中

Vite

// vite.config.ts
import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
export default defineConfig({
  // ...
  plugins: [
    // ...
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
})

这样配置太过简单,你会发现目录会多出两个文件,auto-imports.d.ts和components.d.ts。

他们的作用就是不需要开发者手动导入,你所使用的组件库和依赖都会在这里看到。

如下components.d.ts文件。

如果只是以上简单的配置auto-imports.d.ts你会发现他是一个空文件,所以还需要你加配置,配置如下:

dts配置生成文件的路径,默认是根路径。

但是使用默认路径会存在问题,页面会报依赖未定义的错误,放到src下会解决这一问题。

如果不想放在src下,你可以修改tsconfig文件,

如下配置

"include": [
    "src/**/*.ts",
    "src/**/*.d.ts",
    "src/**/*.tsx",
    "src/**/*.vue",
    "src/style/blackTheme.scss"
  ]

因为ts只配置了src下的.d.ts文件,自动生成的文件和sec同级所以报错,将src/**/*.d.ts改为**/*.d.ts即可

imports配置可以自动引入的依赖,我配置的是vue,vue-router,axios等,配置完成以后,他会将你配置的依赖显示到auto-imports.d.ts中,

同时设置vueTemplate:true,在页面使用(ref,reactive)时不在需要引入。

    AutoImport({
      resolvers: [ElementPlusResolver()],
      dts: "src/auto-imports.d.ts",
      include: [
        /\.[tj]sx?$/, // .ts, .tsx, .js, .jsx
        /\.vue$/,
        /\.vue\?vue/, // .vue
        /\.md$/, // .md
      ],
      vueTemplate: true,
      imports: [
        "vue",
        "vue-router",
        "vue/macros",
        // custom
        {
          "@vueuse/core": [
            // named imports
            "useMouse", // import { useMouse } from '@vueuse/core',
            // alias
            ["useFetch", "useMyFetch"], // import { useFetch as useMyFetch } from '@vueuse/core',
          ],
          axios: [
            // default imports
            ["default", "axios"], // import { default as axios } from 'axios',
          ],
        },
      ],
    }),
    Components({
      // allow auto load markdown components under `./src/components/`
      extensions: ["vue", "md"],
      // allow auto import and register components used in markdown
      include: [/\.vue$/, /\.tsx$/, /\.vue\?vue/, /\.md$/],
      resolvers: [ElementPlusResolver()],
      dts: "src/components.d.ts",
    }),

如果你想使用$ref也可以配置好,无需在自己引入了。

$ref定义的变量不需要.value哦

vue({
      include: [/\.vue$/, /\.md$/],
      // 可以使用$ref
      reactivityTransform: true,
    }),

注意:

自动引入会出现一些样式的丢失,如:ElMessage、ElNotification等,解决方法如下,在vite.config.ts中进行如下配置。

这里会用到vite-plugin-style-import插件,自己下载即可。

 import {
  createStyleImportPlugin,
  ElementPlusResolve,
} from "vite-plugin-style-import";
// 解决message和notification引入不生效问题
    createStyleImportPlugin({
      resolves: [ElementPlusResolve()],
    }),

想要动态改变浏览器中title,可以使用vite-plugin-html,可以进行title的动态配置, 然后可以在index.html根目录下进行渲染了

如下:

createHtmlPlugin({
      inject: {
        data: {
          title: "vite+vue3+ts",
          description: "系统",
          version: "1.0.1",
        },
      },
    }),
<title><%-title%></title>

配置全局的css、less、scss,可以如下配置:我在项目main.ts引入了样式所以这里注释了

css: {
    preprocessorOptions: {
      // less: {
      // 全局添加less
      // additionalData: `@import '@/assets/styles/common/var.less';`,
      // javascriptEnabled: true,
      // },
    },
  },

然后就是打包时代码的一些配置了。

配置去除console.log、debugger以及注释等。

 /** Vite 2.6.x 以上需要配置 minify: "terser", terserOptions 才能生效 */
    minify: "terser",
    /** 在打包代码时移除 console.log、debugger 和 注释 */
    terserOptions: {
      //打包后移除console和注释
      compress: {
        drop_console: false,
        drop_debugger: true,
        pure_funcs: ["console.log"],
      },
      format: {
        /** 删除注释 */
        comments: false,
      },
    },

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue.use的原理和设计源码探究

    Vue.use的原理和设计源码探究

    这篇文章主要为大家介绍了Vue.use的原理和设计源码探究详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • vue项目打包并部署到Linux服务器的详细过程

    vue项目打包并部署到Linux服务器的详细过程

    我们在会开发项目的同时,也应该了解一下项目是如何部署到服务器的,下面这篇文章主要给大家介绍了关于vue项目打包并部署到Linux服务器的相关资料,需要的朋友可以参考下
    2023-01-01
  • Vue3.0导出数据为自定义样式Excel的详细实例

    Vue3.0导出数据为自定义样式Excel的详细实例

    在许多的后台系统中少不了导出Excel表格的功能,下面这篇文章主要给大家介绍了关于Vue3.0导出数据为自定义样式Excel的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • vue中播放rtsp流的方法实例详解

    vue中播放rtsp流的方法实例详解

    最近有个需求是前端在浏览器显示摄像头传回的RTSP视频流,下面这篇文章主要给大家介绍了关于vue中播放rtsp流的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • Vue简明介绍配置对象的配置选项

    Vue简明介绍配置对象的配置选项

    我们知道每一个vue项目应用都是通过vue的构造函数进行创建一个新的vue项目的。创建vue实例的配置对象,可以包括一下属性选项,比如:data、methods、watch、template等等,每一个选项都有不同的功能,大家可以根据自己的需求选择不同的配置
    2022-08-08
  • vue.js实现刷新当前页面的方法教程

    vue.js实现刷新当前页面的方法教程

    这篇文章主要给大家介绍了关于vue.js实现刷新当前页面的方法教程,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-07-07
  • Element树形控件el-tree实现一键全选、反选功能

    Element树形控件el-tree实现一键全选、反选功能

    最近做的项目用到了全选全不选功能,于是就自己动手写了一个,这篇文章主要给大家介绍了关于Element树形控件el-tree实现一键全选、反选功能的相关资料,需要的朋友可以参考下
    2023-10-10
  • elementUI动态表单 + el-select 按要求禁用问题

    elementUI动态表单 + el-select 按要求禁用问题

    这篇文章主要介绍了elementUI动态表单 + el-select 按要求禁用问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • 手把手教你拿捏vue cale()计算函数使用

    手把手教你拿捏vue cale()计算函数使用

    这篇文章手把手教你拿捏vue cale()计算函数使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Element ui table表格内容超出隐藏显示省略号问题

    Element ui table表格内容超出隐藏显示省略号问题

    这篇文章主要介绍了Element ui table表格内容超出隐藏显示省略号问题,具有很好的参考价值,希望对大家有所帮助,
    2023-11-11

最新评论