最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3+vite自定義封裝vue組件發(fā)布到npm包的全過(guò)程

 更新時(shí)間:2022年09月06日 10:39:51   作者:qq_184177677  
當(dāng)市面上主流的組件庫(kù)不能滿足我們業(yè)務(wù)需求的時(shí)候,那么我們就有必要開發(fā)一套屬于自己團(tuán)隊(duì)的組件庫(kù),下面這篇文章主要給大家介紹了關(guān)于vue3+vite自定義封裝vue組件發(fā)布到npm包的相關(guān)資料,需要的朋友可以參考下

創(chuàng)建項(xiàng)目

  • “vue”: “^3.2.8”
  • “vite”: “^2.5.2”

習(xí)慣用HB的直接用創(chuàng)建vue3項(xiàng)目即可 或

npm init vite@latest

創(chuàng)建組件

打開項(xiàng)目 在src/components文件夾下新增文件,我這里叫TestBtn.vue

<template>
  <button>我是測(cè)試要發(fā)布的按鈕組件</button>
</template>
 
//導(dǎo)出組件名*
<script>
	export default{
		name:'test-btn'
	}
</script> 
<script setup>

</script>
 
<style>

</style>

拿到當(dāng)前項(xiàng)目里測(cè)試一下

//app.vue
<template>
	<div>
		<test-btn></test-btn>
	</div>
</template>

<script setup>
import TestBtn from './components/TestBtn.vue'
</script>

<style scoped>

</style>

導(dǎo)出組件

src下新建index.js

//index.js
import TestBtn from "./components/TestBtn.vue"; // 引入封裝好的組件

export { TestBtn } //實(shí)現(xiàn)按需引入*


const components = [TestBtn];
const install = function(App, options) {
	components.forEach((component) => {
		App.component(component.name,component);
	});
};
export default { install } // 批量的引入*

使用vite構(gòu)建

編輯vite.config.js文件,新增build屬性,vite中文文檔

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  build: {
    lib: {
      entry: path.resolve(__dirname, 'src/index.js'),
      name: 'TestBtn',
      fileName: (format) => `test-btn.${format}.js`
    },
    rollupOptions: {
      // 確保外部化處理那些你不想打包進(jìn)庫(kù)的依賴
      external: ['vue'],
      output: {
        // 在 UMD 構(gòu)建模式下為這些外部化的依賴提供一個(gè)全局變量
        globals: {
          vue: 'Vue'
        }
      }
    }
  }
})

修改package.json文件

{
	"name": "test-btn-ui",
	"version": "0.0.1",
	"scripts": {
		"dev": "vite",
		"build": "vite build",
		"serve": "vite preview"
	},
	"files": ["dist"],
	"main": "./dist/test-btn.umd.js",
	"module": "./dist/test-btn.es.js",
	"exports": {
		".": {
			"import": "./dist/test-btn.es.js",
			"require": "./dist/test-btn.umd.js"
		}
	},
	"dependencies": {
		"vue": "^3.2.8"
	},
	"devDependencies": {
		"@vitejs/plugin-vue": "^1.6.0",
		"@vue/compiler-sfc": "^3.2.6",
		"vite": "^2.5.2"
	}
}

打包

生成dist文件

npm run build

注冊(cè)->登錄npm

按提示注冊(cè)就可以 npm官網(wǎng)

發(fā)布前準(zhǔn)備

在dist文件生成package.json文件,自定義組件名(唯一,重名報(bào)錯(cuò)重新起一個(gè)就行),版本號(hào)每次上傳要高于前一次版本號(hào)

//dist文件下
npm init -y

//package.json
{
  "name": "test-btn-ui",
  "version": "1.0.4",
  "description": "",
  "main": "test-btn.es.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

發(fā)布到npm

npm publish

其他項(xiàng)目引用

npm i test-btn-ui

//main.js
import { createApp } from 'vue'
import App from './App.vue'
import TestBtnUI from 'test-btn-ui'
import 'test-btn-ui/style.css'

createApp(App).use(TestBtnUI).mount('#app')

//頁(yè)面.vue
<template>
	<test-btn></test-btn>
</template>

<script setup>

</script>

<style scoped>

</style>

參考:

總結(jié)

到此這篇關(guān)于vue3+vite自定義封裝vue組件發(fā)布到npm包的文章就介紹到這了,更多相關(guān)vue3+vite封裝組件發(fā)布npm包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vuex如何修改狀態(tài)state的方法

    vuex如何修改狀態(tài)state的方法

    這篇文章主要介紹了vuex如何修改狀態(tài)state的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 關(guān)于vue-property-decorator的基礎(chǔ)使用實(shí)踐

    關(guān)于vue-property-decorator的基礎(chǔ)使用實(shí)踐

    這篇文章主要介紹了關(guān)于vue-property-decorator的基礎(chǔ)使用實(shí)踐,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 3分鐘迅速學(xué)會(huì)Vue中methods方法使用技巧

    3分鐘迅速學(xué)會(huì)Vue中methods方法使用技巧

    最近在學(xué)習(xí)Vue,感覺(jué)methods還是有必有總結(jié)一下的,下面這篇文章主要給大家介紹了關(guān)于3分鐘迅速學(xué)會(huì)Vue中methods方法使用技巧的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Vue實(shí)現(xiàn)不同用戶權(quán)限的方法詳解

    Vue實(shí)現(xiàn)不同用戶權(quán)限的方法詳解

    在項(xiàng)目中,實(shí)現(xiàn)不同用戶的權(quán)限控制是常見的需求也是常見的功能模塊,本文將以 vue 為主要的代碼框架介紹幾種常見的權(quán)限控制方式,有需要的可以了解下
    2025-03-03
  • vue項(xiàng)目配置使用flow類型檢查的步驟

    vue項(xiàng)目配置使用flow類型檢查的步驟

    這篇文章主要介紹了vue項(xiàng)目配置使用flow類型檢查的步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 在Vue中實(shí)現(xiàn)對(duì)文件的壓縮和解壓縮功能

    在Vue中實(shí)現(xiàn)對(duì)文件的壓縮和解壓縮功能

    在前端開發(fā)中,文件的壓縮和解壓縮是經(jīng)常需要用到的功能,尤其是在需要上傳和下載文件的場(chǎng)景下,文件壓縮可以減小文件大小,加快文件傳輸速度,提高用戶體驗(yàn),本文將介紹在Vue項(xiàng)目中如何進(jìn)行文件的壓縮和解壓縮,需要的朋友可以參考下
    2023-11-11
  • Vue封裝實(shí)現(xiàn)可配置的搜索列表組件

    Vue封裝實(shí)現(xiàn)可配置的搜索列表組件

    在Vue.js開發(fā)中,經(jīng)常會(huì)遇到需要展示搜索和列表的需求,為了提高代碼復(fù)用性和開發(fā)效率,我們可以封裝一個(gè)可配置的搜索列表組件,下面我們就來(lái)講講如何實(shí)現(xiàn)這樣一個(gè)組件吧
    2023-08-08
  • el-table表格動(dòng)態(tài)合并行及合并行列實(shí)例詳解

    el-table表格動(dòng)態(tài)合并行及合并行列實(shí)例詳解

    在使用el-table的時(shí)候經(jīng)常會(huì)涉及到表格的列合并,包括表格操作列的合并,下面這篇文章主要給大家介紹了關(guān)于el-table表格動(dòng)態(tài)合并行及合并行列的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • vue組件通信傳值操作示例

    vue組件通信傳值操作示例

    這篇文章主要介紹了vue組件通信傳值操作,結(jié)合實(shí)例形式分析了vue.js父子組件通信及兄弟組件通信相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01
  • uniapp?獲取系統(tǒng)信息的方法小結(jié)

    uniapp?獲取系統(tǒng)信息的方法小結(jié)

    uni-app提供了異步(uni.getSystemInfo)和同步(uni.getSystemInfoSync)的2個(gè)API獲取系統(tǒng)信息,系統(tǒng)信息返回的內(nèi)容非常多,各操作系統(tǒng)、各家小程序、各瀏覽器對(duì)它們的定義也不相同
    2022-11-11

最新評(píng)論

黄石市| 昭平县| 堆龙德庆县| 安仁县| 尼玛县| 陆良县| 汨罗市| 遂昌县| 连云港市| 鲁山县| 皮山县| 章丘市| 南木林县| 南通市| 和硕县| 驻马店市| 金昌市| 乐昌市| 尤溪县| 铁岭市| 嘉鱼县| 罗江县| 临猗县| 普陀区| 阿克苏市| 中牟县| 图片| 玉屏| 红安县| 惠东县| 新蔡县| 凌云县| 四子王旗| 襄垣县| 大丰市| 宁陵县| 右玉县| 浪卡子县| 习水县| 伊金霍洛旗| 汝南县|