国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue封裝第三方插件并發布到npm的方法

2019-11-19 15:18:43
字體:
來源:轉載
供稿:網友

前言

寫此文前特意google了一下,因為有較詳細的開發教程我再寫意義不大,有把插件封裝成組件的教程,有把自己的組件封住成插件的教程,本文主要說明如何把第三方的插件封裝成vue插件,簡化配置,一鍵安裝,主要提供思路,封裝方法大同小異?,文章略長要有耐心。

gitment

gitment是一個基于github issues封裝的評論插件,以這個插件作為演示,把它封裝成vue插件。vue-gitment,該插件已發布到npm,并在自己的開源項目vueblog中安裝使用

項目初始化

封裝vue的插件用webpack-simple很合適,vue init webpack-simple vue-gitment此命令創建我們的項目的目錄,創建文件夾和文件,最后結構是這樣的

lib目錄是我們的插件目錄,其他的默認就好

修改配置項

首先是修改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

我們只需配置入口和出口,不要刪除默認的配置,因為后面開發好插件,我們需要查看工作效果

修改index.html

因為我們修改了webpack配置,自然要把script的src修改一下

封裝插件

VueComment.vue內容如下

<template> <div v-comment="options"></div></template><script>// 引入依賴項import Gitment from 'gitment'export default { name: 'vue-comment', props: ['options'], directives: {  // 自定義指令  comment: {   bind: function (el, binding) {    const gitment = new Gitment({     id: binding.value.id + '',     owner: binding.value.owner,     repo: binding.value.repo,     oauth: {      client_id: binding.value.oauth.client_id,      client_secret: binding.value.oauth.client_secret     }    })    gitment.render(el)   }  } }}</script>

相信熟悉vue的一眼都看懂了,render函數是gitment對象的方法,不用關心,和我們開發組件是一樣一樣的

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換成默認配置,index.html的src也換成默認的

在main.js中引入我們的組件

import VueComment from './lib/index.js'Vue.use(VueComment)

App.vue中使用我們的插件

<template> <div id="app">  <vue-comment :options="options" v-if="options"></vue-comment> </div></template><script>export default { name: 'App', data() {  return {   options: {    id: 'article id',    owner: 'Your GitHub ID',    repo: 'The repo to store comments',    oauth: {     client_id: 'Your client ID',      client_secret: 'Your client secret',    }    }  } }}</script><style>  @import '~gitment/style/default.css';</style>

執行npm run dev

哈哈,它正常工作了,Error: Not Found是因為我沒配置client_id。

發布插件

完成測試工作后我們就可以發布到npm了,這個就比較見到了,注冊個npm賬號,在你要發布的項目目錄執行npm login,輸入賬號密碼和郵箱,然后npm publish就發布成功了,npm install vue-gitment查看效果,建議直接看源代碼,因為真的很簡單。

結語

自己動手豐衣足食,我覺得每個前端開發者都要一個屬于自己的輪子(雖然vue-gitment不是輪子),一個屬于自己輪子,在造輪子的工程中你能學到很多很多

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 买车| 垣曲县| 大同市| 呼和浩特市| 休宁县| 平远县| 哈尔滨市| 乡城县| 阿合奇县| 五华县| 安顺市| 米泉市| 板桥市| 民丰县| 正定县| 伊宁市| 田东县| 台北市| 琼中| 夏津县| 兴隆县| 巴青县| 乳山市| 抚宁县| 霍城县| 定远县| 德阳市| 乌兰县| 天祝| 嘉祥县| 洛川县| 阿鲁科尔沁旗| 辰溪县| 聊城市| 日照市| 离岛区| 沂源县| 仁寿县| 大厂| 宝清县| 金山区|