vite.config.ts配置之自動(dòng)導(dǎo)入element-puls方式
根據(jù)Elementplus UI 配置組件及樣式的自動(dòng)導(dǎo)入
自動(dòng)導(dǎo)入推薦
首先你需要安裝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()],
}),
],
})這樣配置太過(guò)簡(jiǎn)單,你會(huì)發(fā)現(xiàn)目錄會(huì)多出兩個(gè)文件,auto-imports.d.ts和components.d.ts。
他們的作用就是不需要開(kāi)發(fā)者手動(dòng)導(dǎo)入,你所使用的組件庫(kù)和依賴都會(huì)在這里看到。
如下components.d.ts文件。

如果只是以上簡(jiǎn)單的配置auto-imports.d.ts你會(huì)發(fā)現(xiàn)他是一個(gè)空文件,所以還需要你加配置,配置如下:
dts配置生成文件的路徑,默認(rèn)是根路徑。
但是使用默認(rèn)路徑會(huì)存在問(wèn)題,頁(yè)面會(huì)報(bào)依賴未定義的錯(cuò)誤,放到src下會(huì)解決這一問(wèn)題。
如果不想放在src下,你可以修改tsconfig文件,
如下配置
"include": [
"src/**/*.ts",
"src/**/*.d.ts",
"src/**/*.tsx",
"src/**/*.vue",
"src/style/blackTheme.scss"
]因?yàn)閠s只配置了src下的.d.ts文件,自動(dòng)生成的文件和sec同級(jí)所以報(bào)錯(cuò),將src/**/*.d.ts改為**/*.d.ts即可
imports配置可以自動(dòng)引入的依賴,我配置的是vue,vue-router,axios等,配置完成以后,他會(huì)將你配置的依賴顯示到auto-imports.d.ts中,
同時(shí)設(shè)置vueTemplate:true,在頁(yè)面使用(ref,reactive)時(shí)不在需要引入。
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也可以配置好,無(wú)需在自己引入了。
$ref定義的變量不需要.value哦
vue({
include: [/\.vue$/, /\.md$/],
// 可以使用$ref
reactivityTransform: true,
}),注意:
自動(dòng)引入會(huì)出現(xiàn)一些樣式的丟失,如:ElMessage、ElNotification等,解決方法如下,在vite.config.ts中進(jìn)行如下配置。
這里會(huì)用到vite-plugin-style-import插件,自己下載即可。
import {
createStyleImportPlugin,
ElementPlusResolve,
} from "vite-plugin-style-import";
// 解決message和notification引入不生效問(wèn)題
createStyleImportPlugin({
resolves: [ElementPlusResolve()],
}),想要?jiǎng)討B(tài)改變?yōu)g覽器中title,可以使用vite-plugin-html,可以進(jìn)行title的動(dòng)態(tài)配置, 然后可以在index.html根目錄下進(jìn)行渲染了
如下:
createHtmlPlugin({
inject: {
data: {
title: "vite+vue3+ts",
description: "系統(tǒng)",
version: "1.0.1",
},
},
}),<title><%-title%></title>
配置全局的css、less、scss,可以如下配置:我在項(xiàng)目main.ts引入了樣式所以這里注釋了
css: {
preprocessorOptions: {
// less: {
// 全局添加less
// additionalData: `@import '@/assets/styles/common/var.less';`,
// javascriptEnabled: true,
// },
},
},然后就是打包時(shí)代碼的一些配置了。
配置去除console.log、debugger以及注釋等。
/** Vite 2.6.x 以上需要配置 minify: "terser", terserOptions 才能生效 */
minify: "terser",
/** 在打包代碼時(shí)移除 console.log、debugger 和 注釋 */
terserOptions: {
//打包后移除console和注釋
compress: {
drop_console: false,
drop_debugger: true,
pure_funcs: ["console.log"],
},
format: {
/** 刪除注釋 */
comments: false,
},
},總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue項(xiàng)目打包并部署到Linux服務(wù)器的詳細(xì)過(guò)程
我們?cè)跁?huì)開(kāi)發(fā)項(xiàng)目的同時(shí),也應(yīng)該了解一下項(xiàng)目是如何部署到服務(wù)器的,下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目打包并部署到Linux服務(wù)器的相關(guān)資料,需要的朋友可以參考下2023-01-01
Vue3.0導(dǎo)出數(shù)據(jù)為自定義樣式Excel的詳細(xì)實(shí)例
在許多的后臺(tái)系統(tǒng)中少不了導(dǎo)出Excel表格的功能,下面這篇文章主要給大家介紹了關(guān)于Vue3.0導(dǎo)出數(shù)據(jù)為自定義樣式Excel的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
Vue簡(jiǎn)明介紹配置對(duì)象的配置選項(xiàng)
我們知道每一個(gè)vue項(xiàng)目應(yīng)用都是通過(guò)vue的構(gòu)造函數(shù)進(jìn)行創(chuàng)建一個(gè)新的vue項(xiàng)目的。創(chuàng)建vue實(shí)例的配置對(duì)象,可以包括一下屬性選項(xiàng),比如:data、methods、watch、template等等,每一個(gè)選項(xiàng)都有不同的功能,大家可以根據(jù)自己的需求選擇不同的配置2022-08-08
vue.js實(shí)現(xiàn)刷新當(dāng)前頁(yè)面的方法教程
這篇文章主要給大家介紹了關(guān)于vue.js實(shí)現(xiàn)刷新當(dāng)前頁(yè)面的方法教程,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。2017-07-07
Element樹(shù)形控件el-tree實(shí)現(xiàn)一鍵全選、反選功能
最近做的項(xiàng)目用到了全選全不選功能,于是就自己動(dòng)手寫(xiě)了一個(gè),這篇文章主要給大家介紹了關(guān)于Element樹(shù)形控件el-tree實(shí)現(xiàn)一鍵全選、反選功能的相關(guān)資料,需要的朋友可以參考下2023-10-10
elementUI動(dòng)態(tài)表單?+?el-select?按要求禁用問(wèn)題
這篇文章主要介紹了elementUI動(dòng)態(tài)表單?+?el-select?按要求禁用問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
手把手教你拿捏vue?cale()計(jì)算函數(shù)使用
這篇文章手把手教你拿捏vue?cale()計(jì)算函數(shù)使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Element ui table表格內(nèi)容超出隱藏顯示省略號(hào)問(wèn)題
這篇文章主要介紹了Element ui table表格內(nèi)容超出隱藏顯示省略號(hào)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,2023-11-11

