从零开始编写一个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

原文地址:https://www.cnblogs.com/zmj97/p/10180690.html

时间: 2024-10-08 23:06:16

从零开始编写一个vue插件的相关文章

vue-用Vue-cli从零开始搭建一个Vue项目

Vue是近两年来比较火的一个前端框架(渐进式框架吧). Vue两大核心思想:组件化和数据驱动.组件化就是将一个整体合理拆分为一个一个小块(组件),组件可重复使用:数据驱动是前端的未来发展方向,释放了对DOM的操作,让DOM随着数据的变化自然而然的变化(尤神原话),不必过多的关注DOM,只需要将数据组织好即可.本文用Vue-cli从零开始搭建一个Vue项目. 准备工作 1.下载安装Node.js 下载地址:https://nodejs.org/en/download/ ,选择合适自己的版本下载即可

从零开始编写IntelliJ IDEA插件

写Java代码的时候,经常会涉及到重复性的操作,这个时候就会想要是有这样一个插件就好了,如果是大家都会遇到的场景,IDE或许已经提供了,再不然也有可能有人编写了相关的插件.要是这个操作是你们的编码环境特有的,那就只能自己写工具了.所以这里来学学如何编写IDEA插件,让自己的编程环境更加强大,更好的进行装逼. 开发环境 开发IDEA插件有以下这些依赖: IntelliJ IDEA Community Edition IntelliJ IDEA Community Edition 源码 Plugin

如何编写一个gulp插件

很久以前,我们在"细说gulp"随笔中,以压缩JavaScript为例,详细地讲解了如何利用gulp来完成前端自动化. 再来短暂回顾下,当时除了借助gulp之外,我们还利用了第三方gulp插件”gulp-uglify”,来达到压缩JavaScript文件的目的. 代码如下: 今儿,我们的重点就是,自己也来实现一个gulp插件. 正文 其实,如果只是单纯地想要编写一个gulp插件不难,可以借助through2或者through-gulp来编写(through-gulp是基于through

如何自己编写一个easyui插件续

接着如何自己编写一个easyui插件继续分享一下如何从上一节写的“hello”插件继承出一个“hello2”. 参考了combobox的源码中继承combo,当然我这个简单很多了.都是根据自己的理解来写的,没有参考什么权威资料,欢迎各位看官拍砖. 1. 实现效果 点击这里在线查看增加了一个输入框,sayHello的是输入的名字. 2. 贴代码 (function ($) { function init(target) { $(target).addClass('hello2'); return

如何编写一个Maven插件

如何编写一个Maven插件 本文基于eclipse ee. 建立一个maven插件工程: 主要就是让项目能依赖maven-plugin-api: 编写一个Mojo类: /** * 用于输出消息的Mojo * @goal hello */ public class HelloMojo extends AbstractMojo { /** * @parameter expression="${echo.message}" default-value="Hello Maven Wo

如何自己编写一个easyui插件

本文介绍如何通过参考1.4.2版本的progressbar的源码自己编写一个HelloWorld级别的easyui插件,以及如何拓展插件的功能. 有利于我们理解easyui插件的实现,以及了解如何对easyui插件进行拓展,或者当发现bug时在不修改源码的情况下对bug进行修复. 1. 首先让我们来看看progressbar的源码(已经删除了一些对本文不重要的). 比较了一下有源码的那几个插件,发现这个只有3KB,最小,所以拿这个学习最好了:而且这个progressbar没有涉及继承其他控件,易

webpack 4.x 从零开始初始化一个vue项目

创建目录 项目名称: vue-init app css reset.sass js home index.vue router index.js main.js App.vue views index.html 安装webpack npm i -D webpack 创建配置文件 webpack.config.js 基础配置 entry 入口 module 模块 plugins 插件 output 输出 进阶配置 resolve devtool devServer ... 基础配置 先写好基本机构

【转】从零开始开发一个vue组件打包并发布到npm (把vue组件打包成一个可以直接引用的js文件)

自己写的组件 有的也挺好的,为了方便以后用自己再用或者给别人用,把组件打包发布到npm是最好不过了,本次打包支持 支持正常的组件调用方式,也支持Vue.use, 也可以直接引用打包好的js文件, 配合vue.js 就不需要webpakc这种构建工具了,可以直接在页面内使用,下面以 ‘yyl-npm-practice’ 这个包为例 第一步:使用 vue init webpack-simple yyl-npm-practice   初始化项目 提示: 不要用 vue init webpack npm

学习如何写一个vue插件【入门篇】

#### 疑答 1.市面上已经有那么多插件可用,为什么还要造轮子?学习.借鉴思想.应用到开发 2.能否在项目中使用?与网上插件使用相同   更新维护问题怎么解决? 自身动力,使用者反馈等 #### 准备工具 1.官方文档https://cn.vuejs.org/v2/guide/plugins.html2.github.npm网站账号.node/npm.git3.代码工具:vscode #### 过程1.新建文件夹 vue-loading-text npm init 初始化 2.代码工具:vsc