封裝vue插件發(fā)布到npm(適用于不同項目公用統(tǒng)一功能)

1. 首先創(chuàng)建一個空的vue項目

2. 在/src/下創(chuàng)建一個components目錄,該目錄的根節(jié)點下創(chuàng)建index.js,寫入以下內(nèi)容:

import cattleInfo from "@/components/cyxCattleInfo";

const components = [cattleInfo]

const install =function(Vue) {

????components.forEach(component => {

????????Vue.component(component.name, component);? ?

????});}

if (typeof window !=='undefined' &&window.Vue) {

????install(window.Vue);

}

export default {install,? ? cattleInfo}

3. 在components下創(chuàng)建組件(名稱自定義)目錄,該目錄下創(chuàng)建src目錄和index.js,

目錄結(jié)構(gòu),如下圖:


組件下的index.js的代碼如下

import cattleInfo from './src/cattleInfo';

/* istanbul ignore next */

cattleInfo.install = function(Vue) {

????Vue.component(cattleInfo.name, cattleInfo);

};

export default cattleInfo;

組件下的src中寫入自己要封裝的組件(組件名稱要一致):


5. 配置后項目中的pakage.json文件,如下圖:

圖中:--name cyx-cattle-info:cyx-cattle-info,為插件名稱,也是發(fā)布到npm上的名稱,命名前到npm官網(wǎng)查詢是否含有其名字!


6. 這一切配置好后,在項目的根目錄下,執(zhí)行命令:npm run package,執(zhí)行完后,會生成cux-cattle-info目錄,如下圖:



執(zhí)行命令:cd cyx-cattle-info

執(zhí)行命令:npm iniy -y(對該目錄進(jìn)行初始化),得到package.json,如下圖:


其次,在該目錄下,執(zhí)行命令:npm publish(發(fā)布插件到npm上);

注意:發(fā)布到npm倉庫

(1)注冊賬號

想要發(fā)布到npm倉庫,就必須要有一個賬號,先去npm官網(wǎng)注冊一個賬號,注意記住用戶名、密碼和郵箱,發(fā)布的時候可能會用到。

(2)設(shè)置npm源

有些小伙伴可能本地的npm鏡像源采用的是淘寶鏡像源或者其它的,如果想要發(fā)布npm包,我們得吧我們得npm源切換為官方得源,命令如下:

npm config set registry=https://registry.npmjs.org

(3)添加npm用戶

進(jìn)入thp-button-ui目錄,添加npm用戶,執(zhí)行命令:

npm adduser

這里會讓你填寫用戶名、密碼、郵箱,然后會收到一封郵件,郵件里面有個類似于驗證碼的東西,如果之前設(shè)置過即可跳過此步。

(4)發(fā)布npm

npm publish

如果發(fā)布失敗可在百度搜索失敗code碼,一般都是名字重復(fù)或者名字不合格


7. 其他項目使用時,只需要在該項目下執(zhí)行命令:npm i 插件名稱

然后在項目中的main.js中加入:


就可以全局使用這個插件了!

8. 最后,每次更新這個插件時,將自己更新完的代碼進(jìn)行打包(npm run package),然后重新初始化(npm init -y),然后再將版本號升級(npm version patch),在發(fā)布到npm 上(npm publish)

9. 若是刪除這個npm插件時,只需要cd到該插件的目錄下,然后執(zhí)行命令(npm unpublish 插件名稱 --force),將插件刪除后,24小時內(nèi)不可再次創(chuàng)建之前相同名稱的插件!!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容