开发一个 vue 插件,发布到npm并且,可以使用 npm 安装。

vue list 查看当前在线的模板信息
步骤如下:

  1. 初始化项目

运行项目:

npm install
npm run dev
  1. 写插件
    在 src 文件夹下面建 lib 文件夹,用于存放插件。lib 文件夹下再建 toast.js 和 toast.vue 两个文件。整个项目目录如下所示:


toast.vue 的内容如下:

    <div class="vue-toast-wraper" v-show="isShow">{{msg}}</div>
</template>
<script>
export default {name:'toast',props:{msg:{default:"",type:String},isShow:{default:false,type:Boolean}},mounted(){if(this.isShow){setTimeout(() => {this.isShow = false},2500);}}
}
</script>
<style scoped>
.vue-toast-wraper{background: rgba(0, 0, 0, 0.6);color: #fff;font-size: 17px;padding: 10px;border-radius:12px;display: -webkit-box;-webkit-box-pack: center;-webkit-box-align: center;position: fixed;top: 50%;left: 50%;z-index: 2000;-webkit-transform: translateY(-50%);transform: translateY(-50%);-webkit-transform: translateX(-50%);transform: translateX(-50%);
}
</style>

toast.vue 是做一个 弹出提示,其中传入的参数有两个:toastMsg 和 isSHowToast,分别表示 提示消息以及是否显示提示。

toast.js 中写 install 方法,内容如下:

const toastPlugin = {install: function(Vue) {Vue.component(VueToastPlugin.name, VueToastPlugin)}
}
// global 情况下 自动安装
if (typeof window !== 'undefined' && window.Vue) {window.Vue.use(toastPlugin)
}
// 导出模块
export default toastPlugin
  1. 本地测试

本插件的功能就这么多,因为我们尚未发布,所以先进行本地测试。

3.1 将 App.vue 多余代码删除。

3.2 在 main.js 中引入

import App from './App.vue'import Toast from './lib/toast.js'
Vue.use(Toast)new Vue({el: '#app',render: h => h(App)
})

3.3 在 App.vue 中使用 toast (别忘记需要传递的参数)

  <div id="app"><toast :msg = "'测试'" :isShow = "true"/></div>
</template><script>
export default {name: 'app'
}
</script><style lang="scss">
</style>

3.4 本地测试的结果,如图,是所期望的

  1. 配置打包
    本地测试没有问题过后,我们就可以准备一下修改配置,为打包发布做准备。

4.1 修改 webpack.config.js
4.2 修改 package.json


4.3 修改 .gitignore 文件
去掉 dist。

4.4 修改 index.html文件

    <div id="app"></div><script src="/dist/toast.js"></script></body>

4.5 项目打包

  1. 在npm上发布
    5.1 注册npm账号

移步 npm 官网。

5.2 本地控制台登录 npm 账号

5.3 发布

自己是一个五年的全栈工程师,这里推荐一下我的前端学习交流群:731771211,里面都是学习前端的,群里会不定期更新最新的教程和学习方法,有想学习web前端的,或是转行,或是大学生,还有工作中想提升自己能力的web前端党欢迎加入。点击:加入

初探 vue 插件开发相关推荐

  1. vue插件开发、文档书写、github发布、npm包发布一波流

    做vue开发,基本的操作会了之后是不是特想撸一撸vue的插件,让自己的代码可(骚)复(骚)用(的).别急,今天和你一起手摸手,哦呸,是手把手,一起撸一管,哦再呸,是封装一个基于vue的支付宝密码弹窗插 ...

  2. Vue 插件开发入门 之 vue-dz-ui

    前言 vue-dz-ui 是我做的一个高度定制化项目中封装的一套组件,最初的版本在4个月之前发布.内有 Button.Input.InputNumber.Checkbox.Radio.Select.M ...

  3. 初探Vue之环境搭建

    最近得闲,想总结总结最近在学习Vue上的一些心得,毕竟作为新手多写多练好处多多,话不多说,马上开始! 前端工程化为开发带来了很多便利,但实际是,环境的配置也要大费周章一番.我用的是在Node环境下基于 ...

  4. 初探 Vue 生命周期和钩子函数

    生命周期 生命周期函数就是 Vue 实例在某一个时间点会自动执行的函数. 简单来说就是好像把人的出生到死亡分成一个个阶段,你取名字肯定是在你出生阶段,而不是在成年阶段:你结婚肯定是在成年阶段,而不是在 ...

  5. android+xposed插件,初探Xposed 插件开发

    1.之前手机上要是想要使用Xposed 功能必须root,然后我们并不想root,或者麻烦,偶尔看到了下面的APP,毫不犹豫用上了xpost 2.详细使用指南看官网把,简单就是单独开了个沙盒,不需要在 ...

  6. Vue插件开发工具的安装 以及 解决Vue Devtools安装后语法启动,图标仍然不亮的问题

    插件安装: 1.极简插件安装地址:https://chrome.zzzmh.cn/index 安装详细步骤看下篇文档 解决问题 第一: 1.找到扩展程序的安装目录.如图片所示: 2.用记事本打开,或者 ...

  7. 前端框架 Vue 初探

    一.前言 前几日使用微信网页版时,好奇这个网页用了什么前端框架.用Chrome的开发者模式一探究竟,发现原来用了一个名叫 Angular 的框架.好吧,既然微信用了,那我也不妨看看.等等,你这篇文章的 ...

  8. vue单文件props写法_vue开发中怎么按需加载需要被填入props和自定义事件的组件?...

    这种场景你可能需要把模态框包装成插件.vue插件开发和组件的区别 - 水秋玄​im.mkinit.com vue插件和组件的区别 使用插件的方式包装组件和直接注册全局组件其实是一样的,都是注册组件.不 ...

  9. 少女风vue组件库制作全攻略~~

    预览 组件库官网 github地址 如果喜欢各位小哥哥小姐姐给个小星星鼓励一下哈, 请勿在生产环境中使用,供学习&交流~~ 完整项目目录结构 git clone到本地安装依赖后,执行npm r ...

最新文章

  1. 在react hook里使用mobx(配置mobx依赖)
  2. operator conv_transpose1‘s input 1 is not linked
  3. java 随机数生成实现_Java中生成随机数的实现方法总结
  4. netty:NIO模型--选择器(Selector)
  5. Java常用正则表达式
  6. windows下安装rabbitMQ教程(实战书写)
  7. 浅析C语言中assert的用法(转)
  8. 将当前的head推送到远程_Git 通俗易懂系列 三、远程仓库和标签
  9. 五大软件设计原则学习笔记2——开放封闭原则
  10. cpu矿工cpuminer-multi编译与使用
  11. wxpython和tkinter哪个好_为什么很多Python开发者写GUI不用Tkinter,而要选择PyQt和wxPython或其他?...
  12. 【51单片机】 蜂鸣器发声程序
  13. 大数据处理的四大步骤
  14. 【虚拟仿真】Unity3D中实现UI跟随3D模型旋转移动、UI一直面朝屏幕
  15. 微信小程序的版本更新机制是什么?
  16. MAC 升级php 到7.1
  17. (赤焰剑C-SKY)1-初识
  18. Coursera 机器学习 第9章(下) Recommender Systems 学习笔记
  19. JVM——内存管理和垃圾回收
  20. 9-5 删除字符串中指定字符

热门文章

  1. WIN7下运行hadoop程序报:Failed to locate the winutils binary in the hadoop binary path
  2. dtgrid 手动条件删除表格中的某一行
  3. 基于CSS3的3D旋转效果
  4. 使用JavaScript弹出Confirm对话框
  5. Persistent Data Structures(可持久化的数据结构)
  6. php 开发桌面应用,使用NW将开发的网站打包成桌面应用
  7. java 多线程 关键字_java多线程基础(synchronize关键字)
  8. 02-09 Python库-PyMySQL-连接数据库
  9. ssh连接虚拟机的linux_openstack系列之运维排障:虚拟机SSH连接失败
  10. php7 mcrypt模块_Linux下PHP安装mcrypt扩展模块笔记