小編給大家分享一下vue封裝第三方插件并發(fā)布到npm的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)是一家專業(yè)提供西湖企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、網(wǎng)站設(shè)計、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為西湖眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。gitment
gitment是一個基于github issues封裝的評論插件,以這個插件作為演示,把它封裝成vue插件。vue-gitment,該插件已發(fā)布到npm,并在自己的開源項目vueblog中安裝使用
項目初始化
封裝vue的插件用webpack-simple很合適,vue init webpack-simple vue-gitment
此命令創(chuàng)建我們的項目的目錄,創(chuàng)建文件夾和文件,最后結(jié)構(gòu)是這樣的
lib目錄是我們的插件目錄,其他的默認(rèn)就好
修改配置項
首先是修改package.json
{ "name": "vue-gitment", "version": "0.1.1", "description": "A comment plugin by gitment", "main": "dist/vue-gitment.js", "directories": { "dist": "dist" }, "scripts": { "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot", "build": "cross-env NODE_ENV=production webpack --progress --hide-modules" }, "repository": { "type": "git", "url": "git+https://github.com/vue-blog/vue-gitment.git" }, "dependencies": { "gitment": "^0.0.3", "vue": "^2.3.3" }, "devDependencies": { }, "author": "wmui", "license": "MIT", "bugs": { "url": "https://github.com/vue-blog/vue-gitment/issues" }, "homepage": "https://github.com/vue-blog/vue-gitment#readme" }
把依賴性gitment添加到dependencies,main是我們打包后的文件入口,你可以用npm init命令生成一個package.json
修改webpack.config.js
我們只需配置入口和出口,不要刪除默認(rèn)的配置,因為后面開發(fā)好插件,我們需要查看工作效果
修改index.html
因為我們修改了webpack配置,自然要把script的src修改一下
封裝插件
VueComment.vue內(nèi)容如下
相信熟悉vue的一眼都看懂了,render函數(shù)是gitment對象的方法,不用關(guān)心,和我們開發(fā)組件是一樣一樣的
index.js封裝組件
import VueComment from './VueComment.vue' const comment = { install: function(Vue) { Vue.component(VueComment.name, VueComment) } } // 這里的判斷很重要 if (typeof window !== 'undefined' && window.Vue) { window.Vue.use(comment) } export default comment
我們在webpack配置的入口文件就是他,install是掛載組件的方法,有了它我們就可以在外部use一個插件了,簡單吧
測試插件
首先測試build是否成功
npm run builddist
目錄會生成如下文件
可喜可賀,接下來測試插件是否正常工作
我們需要把package和webpack的修改一下,這就是為什么我前面說不要刪除而是注釋掉 ,把package.json的main修改為dist/build.js,wepack的entry和filename換成默認(rèn)配置,index.html的src也換成默認(rèn)的
在main.js中引入我們的組件
import VueComment from './lib/index.js' Vue.use(VueComment)
App.vue中使用我們的插件
執(zhí)行npm run dev
哈哈,它正常工作了,Error: Not Found是因為我沒配置client_id。
發(fā)布插件
完成測試工作后我們就可以發(fā)布到npm了,這個就比較見到了,注冊個npm賬號,在你要發(fā)布的項目目錄執(zhí)行npm login,輸入賬號密碼和郵箱,然后npm publish就發(fā)布成功了,npm install vue-gitment查看效果,建議直接看源代碼,因為真的很簡單。
以上是“vue封裝第三方插件并發(fā)布到npm的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。