自定義vue組件發(fā)布到npm的方法
本文介紹了自定義vue組件發(fā)布到npm的方法,分享給大家,具體如下:
為什么會(huì)有這個(gè)想法呢,主要是vue項(xiàng)目中自定義的組件在多個(gè)項(xiàng)目中使用。導(dǎo)致修改bug的時(shí)候,總是要在項(xiàng)目分支中修改,然后同步到主線上,這樣容易導(dǎo)致分支修改后沒(méi)有同步到主線,慢慢的就會(huì)導(dǎo)致組件版本不統(tǒng)一,而導(dǎo)致升級(jí)組件很繁瑣,最后可能都要去維護(hù)多個(gè)組件的不同版本,這樣不是我們想要的。
所以就打算將組件打包發(fā)布到npm上,每個(gè)項(xiàng)目中只需要在package.json中修改組件版本即可同步最新版本。
組件發(fā)布?xì)v程
1、開(kāi)始對(duì)打包不是很了解,只是簡(jiǎn)單的將原有.vue文件以及相關(guān)的css、image資源進(jìn)行提取,然后放到一個(gè)項(xiàng)目下,下面是發(fā)布組件到npm的詳細(xì)步驟:
(1)新建組件項(xiàng)目,通過(guò)npm init來(lái)初始化一個(gè)package.json文件
(2)將提取出來(lái)的組件放到項(xiàng)目路徑。
(3)在package.json所在目錄,執(zhí)行npm adduser。這里需要注冊(cè)npm帳號(hào)
(4)然后要求輸入用戶(hù)名、密碼、注冊(cè)時(shí)填的郵箱。如圖:

(5)然后輸入npm publish即可。
如果不出以外,組件就已經(jīng)發(fā)布成功了,可以通過(guò)npm install xxxx來(lái)進(jìn)行安裝了。
2、在使用過(guò)程中發(fā)現(xiàn)了一些小問(wèn)題。由于當(dāng)時(shí)在index.js中使用了es6的部分語(yǔ)法(如:數(shù)組的map、const),導(dǎo)致在低版本ie中會(huì)報(bào)錯(cuò),雖然可以通過(guò)修改js來(lái)解決。但是作為一個(gè)有理想有抱負(fù)的碼農(nóng),這種事情不能忍,因?yàn)橄雃lement-ui這些組件都是可以將.vue文件打包之后發(fā)布的。然后就想著也要弄好了。
3、然后就開(kāi)始研究怎么能通過(guò)import xx from xxx即可實(shí)現(xiàn)加載打包后的js。通過(guò)查找資料,發(fā)現(xiàn)是通過(guò)package.json中有個(gè)main屬性來(lái)設(shè)置加載js的路徑。如圖:

4、加載問(wèn)題解決了,剩下就是打包問(wèn)題了。由于打包需要一些webpack的配置,所以直接用vue-cli初始化了一個(gè)工程,對(duì)其中的webpack進(jìn)行調(diào)整。主要是去掉build中打包配置文件webpack.prod.conf.js,這里去掉HtmlWebpackPlugin等。
https://github.com/myGitZone/mapModule 這里是示例,該項(xiàng)目只是一個(gè)demo。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue2前端使用axios發(fā)起post請(qǐng)求后端(springboot)接收不到值解決辦法
這篇文章主要介紹了vue2前端使用axios發(fā)起post請(qǐng)求后端(springboot)接收不到值解決辦法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-03-03
Vue3 openlayers加載瓦片地圖并手動(dòng)標(biāo)記坐標(biāo)點(diǎn)功能
這篇文章主要介紹了 Vue3 openlayers加載瓦片地圖并手動(dòng)標(biāo)記坐標(biāo)點(diǎn)功能,我們這里用vue/cli創(chuàng)建,我用的node版本是18.12.1,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
基于axios請(qǐng)求封裝的vue應(yīng)用實(shí)例代碼
這篇文章主要給大家介紹了基于axios請(qǐng)求封裝的vue應(yīng)用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
詳解Vue.js iview實(shí)現(xiàn)樹(shù)形權(quán)限表(可擴(kuò)展表)
這篇文章主要介紹了詳解Vue.js iview實(shí)現(xiàn)樹(shù)形權(quán)限表(可擴(kuò)展表),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
vue如何將字符串的一部分處理為html文檔并渲染到頁(yè)面
這篇文章主要介紹了vue如何將字符串的一部分處理為html文檔并渲染到頁(yè)面,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
Vue的export?default和帶返回值的data()及@符號(hào)的用法說(shuō)明
這篇文章主要介紹了Vue的export?default和帶返回值的data()及@符號(hào)的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03

