1.Api 自動匯入
unplugin-auto-import自動引入 composition api,不需要再手動引入,(npm 地址)
- 下載
npm i -D unplugin-auto-import
- 配置
vite.config.ts
import AutoImport from "unplugin-auto-import/vite";
export default defineConfig({
plugins: [
vue(),
AutoImport({
/* options */
imports: ["vue"],
dts: "src/auto-import.d.ts",
}),
],
});
全部配置
AutoImport({
// 在哪些檔案里可以直接引入
include: [
/\.[tj]sx?$/, // .ts, .tsx, .js, .jsx
/\.vue$/,
/\.vue\?vue/, // .vue
/\.md$/, // .md
],
// 自動引入哪些包
imports: [
// 自動引入整個模塊
"vue",
"vue-router",
// 自定義模塊引入,比如只需要自動引入某個東西,給引入的模塊起別名
{
"@vueuse/core": [
// 按需匯出的模塊
"useMouse", // import { useMouse } from '@vueuse/core',
// 匯出別名
["useFetch", "useMyFetch"], // import { useFetch as useMyFetch } from '@vueuse/core',
],
axios: [
// 默認匯出
["default", "axios"], // import { default as axios } from 'axios',
],
},
],
// 宣告檔案
dts: "./auto-imports.d.ts",
resolvers: [
/* ... */
],
// 生成相應的.eslintrc-auto-import.json檔案,
// eslint globals檔案 - https://eslint.org/docs/user-guide/configuring/language-options#specifying-globals
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')
},
}),
宣告檔案 auto-imports.d.js 時自動生成的,可以去看看檔案內容,里面會標明自動引入了哪些東西
2.setup name 增強 vite-plugin-vue-setup-extend
在使用 Vue3.2 的 setup 語法糖后,無法優雅的定義組件的 name 值,雖然 vite 會根據組件的檔案名自動生成組件名,但是需要自定義的組件名時,就很不方便,
解決這個問題通常是通過寫兩個 script 標簽來解決,一個使用 setup,一個不使用,但這樣必然是不夠優雅的,
安裝vite-plugin-vue-setup-extend插件可以優雅的解決這個問題
- 安裝
npm i vite-plugin-vue-setup-extend -D
- 配置 vite.config.ts
import { defineConfig } from "vite";
import VueSetupExtend from "vite-plugin-vue-setup-extend";
export default defineConfig({
plugins: [VueSetupExtend()],
});
- 使用
<script lang="ts" setup name="demo"></script>
在使用 vite-plugin-vue-setup-extend 0.4.0 及以前版本時,會有個問題:如果 script 標簽內沒有內容,即使給 script 標簽添加上 name 屬性,其在 vue-devtools 內也不會生效,
解決:不要讓 script 標簽內空著,例如:加行注釋,
<script lang="ts" setup name="demo">
// test
</script>
3.自動匯入圖片
爽歸爽,但容易發生變數沖突,慎用!
自動匯入影像,同級目錄的檔案名不能重復!(官網地址)
- 安裝
npm i vite-plugin-vue-images -D
- 配置 vite.config.ts
import { defineConfig } from "vite";
import ViteImages from "vite-plugin-vue-images";
export default {
plugins: [
Vue(),
ViteImages({
dirs: ["src/assets"], // 影像目錄的相對路徑
extensions: ["jpg", "jpeg", "png", "svg", "webp"], // 有效的影像擴展
customResolvers: [], // 覆寫名稱->影像路徑決議的默認行為
customSearchRegex: "([a-zA-Z0-9]+)", // 重寫搜索要替換的變數的Regex,
}),
],
};
- 使用
<template>
<img :src="https://www.cnblogs.com/icey-Tang/archive/2023/02/07/Image1" />
</template>
<script setup lang="ts"></script>
插件將轉換為:
<template>
<img :src="https://www.cnblogs.com/icey-Tang/archive/2023/02/07/Image1" />
</template>
<script setup lang="ts">
import Image1 from "@/assets/Image1.png";
</script>
4.組件自動按需匯入
unplugin-vue-components
- 安裝
npm i unplugin-vue-components -D
- 配置 vite.config.ts
import { defineConfig } from 'vite'
import Components from 'unplugin-vue-components/vite' // 按需加載自定義組件
// ui庫決議器,也可以自定義,需要安裝相關UI庫,unplugin-vue-components/resolvers
// 提供了以下集中決議器,使用的時候,需要安裝對應的UI庫,這里以AntDesign示例
// 注釋的是包含的其他一些常用組件庫,供參考
import {
// ElementPlusResolver,
AntDesignVueResolver,
// VantResolver,
// HeadlessUiResolver,
// ElementUiResolver
} from 'unplugin-vue-components/resolvers'
export default defineConfig({
plugins: [
// 按需引入
Components({
dts: true,
dirs: ['src/components'], // 按需加載的檔案夾
extensions: ['vue', 'jsx'], // 檔案型別
// ui庫決議器,也可以自定義,需要安裝相關UI庫
resolvers: [
// VantResolver(),
// ElementPlusResolver(),
// AntDesignVueResolver(),
// HeadlessUiResolver(),
// ElementUiResolver()
AntDesignVueResolver({
// 引數配置可參考:https://github.com/antfu/unplugin-vue-components/blob/main/src/core/resolvers/antdv.ts
// 自動引入 ant-design/icons-vue中的圖示,需要安裝@ant-design/icons-vue
resolveIcons: true,
}),
],
}),
],
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/543201.html
標籤:其他
上一篇:為在線客服系統接入chatGPT(四):chatGPT介面vue網頁版,可以聯系背景關系語境,可以實作自己的chatGPT,附代碼
下一篇:Backbone前端框架解讀
