溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Vue3組件庫的環(huán)境怎么配置

發(fā)布時(shí)間:2023-03-08 10:12:14 來源:億速云 閱讀:122 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“Vue3組件庫的環(huán)境怎么配置”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

因?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,然后就會(huì)自動(dòng)生成 ts 的配置文件tsconfig.json,然后我們對(duì)其做一個(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ù)可能會(huì)有一定的調(diào)整

搭建一個(gè)基于 vite 的 vue3 項(xiàng)目

因?yàn)槲覀円_發(fā)的是一個(gè) Vue3 組件庫,肯定需要一個(gè) Vue3 項(xiàng)目來測(cè)試我們的組件庫,所以這里將自己搭建一個(gè)基于 Vite 的 Vue3 項(xiàng)目來對(duì)組件進(jìn)行調(diào)試。因此我們?cè)诟夸浶陆ㄒ粋€(gè)叫 play 的文件夾然后初始化pnpm init,后續(xù)的組件調(diào)試就在這個(gè)項(xiàng)目下進(jìn)行。接下來我們就開始搭建一個(gè) Vue3+Vite 的項(xiàng)目

安裝插件

我們需要安裝vitevitejs/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會(huì)默認(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>啟動(dòng)測(cè)試</div>
</template>

入口 main.ts

新建main.ts

import { createApp } from "vue";
import App from "./app.vue";

const app = createApp(App);

app.mount("#app");

配置腳本啟動(dòng)項(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)目需要測(cè)試本地的組件庫,所以也需要將 play 和我們的組件庫關(guān)聯(lián)在一起。修改一下pnpm-workspace.yaml文件

packages:
  - "packages/**"
  - "play"

此時(shí) play 項(xiàng)目便可以安裝本地 packages 下的包了

最后執(zhí)行pnpm run dev,便可啟動(dòng)我們的 play 項(xiàng)目

Vue3組件庫的環(huán)境怎么配置

但是有一個(gè)問題就是 ts 無法識(shí)別*.vue文件,所以編譯器會(huì)報(bào)紅

Vue3組件庫的環(huán)境怎么配置

此時(shí)我們需要新建一個(gè)聲明文件vue-shim.d.ts,讓 ts 認(rèn)識(shí)*.vue的文件

declare module '*.vue' {
    import type { DefineComponent } from "vue";
    const component: DefineComponent<{}, {}, any>
}

此時(shí)報(bào)錯(cuò)便消失了。

“Vue3組件庫的環(huán)境怎么配置”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI