vite.config.ts配置之自動導(dǎo)入element-puls方式
根據(jù)Elementplus UI 配置組件及樣式的自動導(dǎo)入
自動導(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()], }), ], })
這樣配置太過簡單,你會發(fā)現(xiàn)目錄會多出兩個文件,auto-imports.d.ts和components.d.ts。
他們的作用就是不需要開發(fā)者手動導(dǎo)入,你所使用的組件庫和依賴都會在這里看到。
如下components.d.ts文件。
如果只是以上簡單的配置auto-imports.d.ts你會發(fā)現(xiàn)他是一個空文件,所以還需要你加配置,配置如下:
dts配置生成文件的路徑,默認(rèn)是根路徑。
但是使用默認(rèn)路徑會存在問題,頁面會報(bào)依賴未定義的錯誤,放到src下會解決這一問題。
如果不想放在src下,你可以修改tsconfig文件,
如下配置
"include": [ "src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue", "src/style/blackTheme.scss" ]
因?yàn)閠s只配置了src下的.d.ts文件,自動生成的文件和sec同級所以報(bào)錯,將src/**/*.d.ts改為**/*.d.ts即可
imports配置可以自動引入的依賴,我配置的是vue,vue-router,axios等,配置完成以后,他會將你配置的依賴顯示到auto-imports.d.ts中,
同時(shí)設(shè)置vueTemplate:true,在頁面使用(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也可以配置好,無需在自己引入了。
$ref定義的變量不需要.value哦
vue({ include: [/\.vue$/, /\.md$/], // 可以使用$ref reactivityTransform: true, }),
注意:
自動引入會出現(xiàn)一些樣式的丟失,如:ElMessage、ElNotification等,解決方法如下,在vite.config.ts中進(jìn)行如下配置。
這里會用到vite-plugin-style-import插件,自己下載即可。
import { createStyleImportPlugin, ElementPlusResolve, } from "vite-plugin-style-import"; // 解決message和notification引入不生效問題 createStyleImportPlugin({ resolves: [ElementPlusResolve()], }),
想要動態(tài)改變?yōu)g覽器中title,可以使用vite-plugin-html,可以進(jìn)行title的動態(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é)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue3實(shí)現(xiàn)雙向綁定的基本原理和代碼示例解析
Vue3中的響應(yīng)式系統(tǒng)由Proxy實(shí)現(xiàn),它取代了Vue2中的Object.defineProperty,提供了更強(qiáng)大的功能和更好的性能,下面給大家介紹Vue3實(shí)現(xiàn)雙向綁定的基本原理和代碼示例解析,感興趣的朋友一起看看吧2024-12-12vue3+vant4封裝日期時(shí)間組件方式(年月日時(shí)分秒)
這篇文章主要介紹了vue3+vant4封裝日期時(shí)間組件方式(年月日時(shí)分秒),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10axios+vue請求時(shí)攜帶cookie的方法實(shí)例
做項(xiàng)目時(shí)遇到一個需求,后端需要在接口請求時(shí),對用戶登陸狀態(tài)進(jìn)行判斷,需要在請求時(shí)攜帶Cookie,下面這篇文章主要給大家介紹了關(guān)于axios+vue請求時(shí)攜帶cookie的相關(guān)資料,需要的朋友可以參考下2022-09-09Element-ui Image圖片按需引入大圖預(yù)覽
這篇文章主要為大家介紹了Element-ui Image圖片按需引入大圖預(yù)覽實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07uni-app自定義導(dǎo)航欄按鈕|uniapp仿微信頂部導(dǎo)航條功能
這篇文章主要介紹了uni-app自定義導(dǎo)航欄按鈕|uniapp仿微信頂部導(dǎo)航條,需要的朋友可以參考下2019-11-11vue + vuex todolist的實(shí)現(xiàn)示例代碼
這篇文章主要介紹了vue + vuex todolist的實(shí)現(xiàn)示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03基于vue2的canvas時(shí)鐘倒計(jì)時(shí)組件步驟解析
今天給大家介紹一款基于vue2的canvas時(shí)鐘倒計(jì)時(shí)組件,這個時(shí)鐘倒計(jì)時(shí)組件采用canvas動畫的炫酷動畫效果形式,根據(jù)剩余時(shí)間的多少變換顏色和旋轉(zhuǎn)扇形的速度,適合搶購、拍賣、下注等業(yè)務(wù)場景,且對移動端友好,需要的朋友可以參考下2018-11-11