开源一年,VUX@2.X 发布

3,815 阅读4分钟
原文链接: mp.weixin.qq.com

16年初开始使用 Vue 做产品需求,2月份考虑边做需求边开源,于是就这么不小心维护到了现在。尽管开源一年,参与贡献的用户也仅有40位,希望有能力有时间的同学多参与贡献。

VUX@2.0 在 Github 上的 vue 语言项目列表里 stars 数仅次于 ElemeFE/element: A Vue.js 2.0 UI Toolkit for Web

当时为了显得正式以及觉得一个短域名有利于使用者输入域名查看文档,注册了域名 https://vux.li/。虽然我现在并不知道有多少同学实际上是直接输域名访问文档的。

VUX@2.0 是年前发布的,因为升级工作量比较大,而又希望文档能稍微详细点多次立时间 flag 然后又延期。因为更新到 Vue@2.x 存在一些小问题,并且碰上了微信小程序发布和放假,所以正式的版本是现在发布的 2.1。

稍微提一下下,bug 或者疑问难以避免,提供完整的重现步骤和代码(千万不要截图代码)有助于快速解决问题。而马虎的问题则可能会被直接关闭。

VUX@2.X 更新

从 2.0-2.1 版本,大概做了这些事:

  • Vue 升级到2.x

  • vue-router 升级到2.x

  • vuex 升级到2.x

  • webpack 模板升级到webpack@2.x

  • WeUI 升级到1.x

  • 新的官网,更详细的文档(还在逐步完善中,欢迎PR),0.x 的文档简陋到我不想再打开旧文档页面,作为基于 Vue 的项目,觉得简直是对不起 Vue 官方文档。

  • .vue 单文件的预处理工具 vux-loader

另外,为了实现真正的开箱即用,除了快速入门的模板,在文档里也分享了开发中常见的经验以及常用工具库。



vux-loader

vux-loader 是 vue 公共组件分发的一种探索和实践,实现的是.vue源码的调用时构建,它可以用来做一些有趣而且实用的事情。它目前在 VUX 中做的事情主要是:

  • 组件的多语言分发,如果你只需要 en 那么调用时源码就是 en 的,不需要在默认是 zh-CN 配置的情况下自行引入 en 语言包

  • i18n 的自动抽取,你可以直接在.vue里配置多语言 <i18></i18n>,然后使用任何第三方的 i18n 插件。

  • import 语法的解析,将 import { Group, Cell } from 'vux' 拆分成单组件引入。其他组件库将这一步放到了 babel 插件中实现。但是在 .vue 进行预处理可以更灵活。版本库有个map.json 文件进行地址映射,无论项目规范如何更新目录如何变更,总能找到正确的文件地址。也可以自由扩展,即使是工具库也可以直接 import 而不用担心将整个库引入。

  • less 变量的全局覆盖,即主题,大部分样式可以通过变量配置

  • 自动配置源码js部分使用 babel-loader 转换,再也不用使用我一开始写的蹩脚的正则了

  • 可以按照自己需求预处理 template, script, style 部分

  • 自动配置对构建后的 css 进行压缩

vux-loader是非侵入式的,只有一个 merge 方法对原有 webpack 配置进行扩展,后面会有一些有意思的功能支持,如果你也在开发公共组件库,欢迎关注 VUX。

详细的使用可以见文档:vux-loader 文档

在组件方面其实没有多少可以分享的东西,可以分享的是 vue 项目的工程化实践。如果有时间,后面会开源一个公共组件库开发模板,支持目录规范、代码规范、文档规范、文档生成、umd文件生成等。

附录数据

(如果你公司在招 Vue 开发,考虑一下到 VUX 投放广告哈哈):

每天Github项目页面的 pv 在 3k-4k,uv 是700左右。

截图为文章发布时一周内来源站点数据,除了下面的站点还有 掘金 和 Awesomes - Web前端开发资源库。


文档站访问数据如下,demo站基本和文档站一致。

此时此刻


----------------------------

在知乎上写完了,结果遇上知乎的故障,图片上传不了,然后访问不了,然后就是无法发布。半天还没好。于是想了想还是发布到13年注册后没发布过文章的公众号。

珍惜生命,远离知乎。