当前位置:   article > 正文

vue插件开发(时间播放器),发布到npm_vue3+ts实现一个带播放功能的时间轴

vue3+ts实现一个带播放功能的时间轴

起因:
因项目需要一个时间轴播放插件,根据时间渲染一些数据。从网上也查找了许多,但大多不太合适。所以想自己开发一个并发布到npm。 本篇文章主要介绍过将组件发布到npm的过程,如看组件源码 项目源码&文档

1、项目初始化
首先,要创建项目,封装vue的插件要写的是一个简单的vue组件不需要依赖那么多而庞大的配置,所以,这里用简单版本的webapck配置模板:

vue init webpack-simple my-project
然后在在src下创建一个lib文件夹包含index.js和vue-time-play.vue目录结构如下:

在index.js中将组件作为vue插件导出:

  1. import vueTimePlay from './vue-time-play' // 导入组件
  2. const timePlay = {
  3. install (Vue, options) {
  4. Vue.component(vueTimePlay.name, vueTimePlay) // vueTimePlay.name 组件的name属性
  5. }
  6. }
  7. export default timePlay // 导出..

在main.js中引入:

  1. import vueTimePlay from './lib/index.js'
  2. Vue.use(vueTimePlay)

2、开发组件
在vue-time-play.vue中编写组件 此组件是基本vue的时间播放器,主要功能是可以按天或者时间播放来切换,并且可以配置速度来切换播放速度。 此处省略 vue-time-play.vue中的代码,请移步到结尾的源码链接查看。

3、修改配置项
修改 webpack.config.js
 

  1. // 执行环境
  2. const NODE_ENV = process.env.NODE_ENV;
  3. module.exports = {
  4. // 根据不同的执行环境配置不同的入口
  5. entry: NODE_ENV == 'development' ? './src/main.js' : './src/lib/index.js',
  6. output: {
  7. path: path.resolve(__dirname, './dist'),
  8. publicPath: '/dist/',
  9. filename: 'vue-time-play.js',
  10. library: 'vue-time-play', // 指定的就是你使用require时的模块名
  11. libraryTarget: 'umd', // 指定输出格式
  12. umdNamedDefine: true // 会对 UMD 的构建过程中的 AMD 模块进行命名。否则就使用匿名的 define
  13. }

然后npm run build

修改 package.json 文件:

  1. // 发布开源因此需要将这个字段改为 false
  2. "private": false,
  3. // 这个指 当import vueTimePlay from vue-time-play 的时候引入的包
  4. "main": "dist/vue-time-play.js",

4、发布

注意:

查看.gitignore文件,不要忘记把dist文件提交上去

每次npm publish时需要更改版本号,package.json里的version字段

  1. 1、需要注册npm账号,然后需要在邮箱里验证一下
  2. 2npm login 登录
  3. 3npm publish 发布

5、确认是否发布成功

在npm上看一下有没有自己发布的插件, 然后:

  1. npm install vue-play-time --save
  2. //main.js中引入
  3. import vuePlayTime from 'vue-play-time'
  4. Vue.use(vuePlayTime);
  5. // app.vue
  6. <vue-time-play :options="options" @onAnimate="onAnimate" @onClickEnd="onclick"></vue-time-play>
  7. data () {
  8. return {
  9. options: {
  10. speedConfig: {
  11. "慢": 5000,
  12. "中":3000,
  13. "快":1000,
  14. },
  15. speed:1000,
  16. startDate:'2020-05-29 ',
  17. endDate:'2020-06-01',
  18. timeUnitControl: true,
  19. timeUnit: '天'
  20. }
  21. }
  22. },

结束

感谢您的阅读。

项目源码 & 文档

欢迎大家安装使用,有任何问题大家可以留言相互交流。

 

本文转载自:xmy_wh的博客,原文链接https://blog.csdn.net/xmy_wh/article/details/106619586

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/130226
推荐阅读
相关标签
  

闽ICP备14008679号