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

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

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

