vue3使用Vite打包組件庫從0搭建過程詳解
手動搭建一個(gè)用于測試組件庫組件 Vue3 項(xiàng)目
本篇文章將在項(xiàng)目中引入 typescript,以及手動搭建一個(gè)用于測試組件庫組件 Vue3 項(xiàng)目
因?yàn)槲覀兪鞘褂?Vite+Ts 開發(fā)的是 Vue3 組件庫,所以我們需要安裝 typescript、vue3,同時(shí)項(xiàng)目將采用 Less 進(jìn)行組件庫樣式的管理
pnpm add vue@next typescript less -D -w
使用pnpm如果要安裝在項(xiàng)目根目錄下,則需要加-w
初始化 ts
在根目錄執(zhí)行npx tsc --init
,然后就會自動生成 ts 的配置文件tsconfig.json
,然后我們對其做一個(gè)更換
{ "compilerOptions": { "baseUrl": ".", "jsx": "preserve", "strict": true, "target": "ES2015", "module": "ESNext", "skipLibCheck": true, "esModuleInterop": true, "moduleResolution": "Node", "lib": ["esnext", "dom"] } }
tsconfig.json
暫時(shí)先做這樣一個(gè)配置,后續(xù)可能會有一定的調(diào)整
搭建一個(gè)基于 vite 的 vue3 項(xiàng)目
因?yàn)槲覀円_發(fā)的是一個(gè) Vue3 組件庫,肯定需要一個(gè) Vue3 項(xiàng)目來測試我們的組件庫,所以這里將自己搭建一個(gè)基于 Vite 的 Vue3 項(xiàng)目來對組件進(jìn)行調(diào)試。因此我們在根目錄新建一個(gè)叫 play 的文件夾然后初始化pnpm init
,后續(xù)的組件調(diào)試就在這個(gè)項(xiàng)目下進(jìn)行。接下來我們就開始搭建一個(gè) Vue3+Vite 的項(xiàng)目
安裝插件
我們需要安裝vite
和vitejs/plugin-vue
插件,@vitejs/plugin-vue
插件是為了解析后綴為.vue
文件的。在 play 目錄下執(zhí)行
pnpm add vite @vitejs/plugin-vue -D
配置 vite.config.ts
新建vite.config.ts
配置文件
import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; export default defineConfig({ plugins: [vue()], });
新建入口 html 文件
@vitejs/plugin-vue
會默認(rèn)加載 play 下的 index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>play</title> </head> <body> <div id="app"></div> <script src="main.ts" type="module"></script> </body> </html>
因?yàn)?vite 是基于 esmodule 的,所以script
標(biāo)簽中需要添加type="module"
app.vue
新建app.vue
文件
<template> <div>啟動測試</div> </template>
入口 main.ts
新建main.ts
import { createApp } from "vue"; import App from "./app.vue"; const app = createApp(App); app.mount("#app");
配置腳本啟動項(xiàng)目
在package.json
配置scripts
腳本
{ "name": "play", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "dev": "vite" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "@vitejs/plugin-vue": "^4.0.0", "vite": "^4.1.1" } }
因?yàn)?play 項(xiàng)目需要測試本地的組件庫,所以也需要將 play 和我們的組件庫關(guān)聯(lián)在一起。修改一下pnpm-workspace.yaml
文件
packages: - "packages/**" - "play"
此時(shí) play 項(xiàng)目便可以安裝本地 packages 下的包了
最后執(zhí)行pnpm run dev
,便可啟動我們的 play 項(xiàng)目
但是有一個(gè)問題就是 ts 無法識別*.vue
文件,所以編譯器會報(bào)紅
此時(shí)我們需要新建一個(gè)聲明文件vue-shim.d.ts
,讓 ts 認(rèn)識*.vue
的文件
declare module '*.vue' { import type { DefineComponent } from "vue"; const component: DefineComponent<{}, {}, any> }
此時(shí)報(bào)錯(cuò)便消失了。
到這里我們就完成一個(gè) Vue3 項(xiàng)目的搭建,后續(xù)便可以在這個(gè)項(xiàng)目中進(jìn)行本地組件的調(diào)試了
本篇文章倉庫地址:配置環(huán)境
以上就是vue3使用Vite打包組件庫從0搭建過程詳解的詳細(xì)內(nèi)容,更多關(guān)于vue3 Vite打包組件庫搭建的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Vue結(jié)合路由配置遞歸實(shí)現(xiàn)菜單欄功能
這篇文章主要介紹了Vue結(jié)合路由配置遞歸實(shí)現(xiàn)菜單欄,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)火鍋工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06element-ui 遠(yuǎn)程搜索組件el-select在項(xiàng)目中組件化的實(shí)現(xiàn)代碼
這篇文章主要介紹了element-ui 遠(yuǎn)程搜索組件el-select在項(xiàng)目中組件化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12vue+node實(shí)現(xiàn)圖片上傳及預(yù)覽的示例方法
這篇文章主要介紹了vue+node實(shí)現(xiàn)圖片上傳及預(yù)覽的示例方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11