• 从零开始编写一个vue插件



    title: 从零开始编写一个vue插件
    toc: true
    date: 2018-12-17 10:54:29
    categories:

    • Web

    tags:

    • vue
    • mathjax

    写毕设的时候需要一个mathjax编辑器,因此直接写一个插件试一下。

    准备账号

    进入npm注册账号

    初始化项目

    vue init webpack-simple mathjax-toolbar
    cd mathjax-toolbar
    npm install
    

    得到的项目内的/src结构如下:

    src/
    ├── assets
    │   └── logo.png
    ├── App.vue
    └── main.js
    

    创建插件相关文件

    • src/下创建插件文件夹plugin/
    • 进入plugin/目录
    • 创建插件的Vue组件文件mathjaxToolbar.vue
    • 创建插件的入口文件index.js

    创建后src/目录为:

    src/
    ├── assets
    │   └── logo.png
    ├── main.js
    ├── App.vue
    └── plugin
        ├── index.js
        └── mathjaxToolbar.vue
    

    编写插件入口文件index.js

    'use strict';
    
    import mathjaxToolbar from './mathjaxToolbar.vue'
    
    const VueMathjaxToolbar = {
      install (Vue) {
        Vue.component('math-toolbar', mathjaxToolbar)
      }
    }
    
    export default VueMathjaxToolbar
    

    src/main.js中注册插件组件并使用

    添加如下代码:

    import mathjaxToolbar from './plugin/index.js'
    Vue.use(mathjaxToolbar)
    

    修改src/App.vue

    <template>
      <div id="app">
        <mathjax-toolbar></mathjax-toolbar>
      </div>
    </template>
    
    <script>
    export default {
      name: 'app',
      data () {
        return {
        }
      }
    }
    </script>
    
    <style>
    </style>
    

    编写插件组件mathjaxToolbar.vue

    这里不再列出,有兴趣的可以在github查看代码:
    mathjaxToolbar.vue

    关于在Vue组件中跨域引入第三方js或cdn

    如果想要引入第三方js,假设为https://xxx.js
    mounted中添加:

    const mScript = document.createElement('script')
    mScript.type = 'text/javascript'
    mScript.src = 'https://xxx.js'
    document.body.appendChild(mScript)
    

    更新package.json

    删除"private": true
    添加:

    "main": "dist/mathjaxEditor.js",
    "repository": {
      "type": "git",
      "url": "https://github.com/zmj97/mathjax-toolbar"
    },
    "keywords": [
      "javascript",
      "vue",
      "mathjax",
      "toolbar",
      "html"
    ]
    

    更新webpack.config.json

    // 修改entry
    entry: './src/plugin/index.js',
    output: {
      path: path.resolve(__dirname, './dist'),
      publicPath: '/dist/',
      // 修改
      filename: 'mathjaxEditor.js',
      // 添加
      library: 'mathjax-toolbar',
      libraryTarget: 'umd',
      umdNamedDefine: true
    }
    

    build与发布

    npm run build
    # 登录npm账号
    npm login
    # 发布
    npm publish
    

    更新包

    # 更新版本号,如1.0.1
    npm version 1.0.1
    # 发布
    npm publish
    
  • 相关阅读:
    双六游戏 扩展欧几里得
    线段上的格点 辗转相除法(GCD)
    POJ 2395 Out of Hay
    POJ 2377 Bad Cowtractors
    POJ 1258 Agri-Net
    POJ 3169 Layout
    POJ 3723 Conscription
    次最短路径 POJ 3255 Roadblocks
    最小生成树求法 Prim + Kruskal
    如何将页脚固定在页面底部,4中方法 转载自:W3CPLUS
  • 原文地址:https://www.cnblogs.com/zmj97/p/10180690.html
Copyright © 2020-2023  润新知