浅谈Vue CLI 3结合Lerna进行UI框架设计

2020-06-14 06:12:24易采站长站整理

└── vue.common.js# 通用的组件构建配置文件

这里重点说明

src
文件,
src
文件可以根据开发需要自行选定方案:

1、使用默认的CLI服务进行开发和UI框架Demo演示,这里UI框架采用原生的

.vue
文件形式进行Demo演示,如果想使用
.md
文件进行演示,可以采用vue-markdown-loader 。

2、使用Vue 驱动的静态网站生成器VuePress,这个目前不是很稳定。 发布

发布

完全可以按照语义化版本进行:

1、各自npm包可以使用

npm publish
快速发布
MINOR
PATCH
版本。

2、如果某个npm包有非兼容性更新,那么可以使用

lerna publish
发布
MAJOR
版本。

使用Lerna工具发布的npm包建议采用scope的形式发布,UI框架示例没有给出Demo,如果想采用scope形式发布可以查看 ziyi2/vue-cli3-lerna-ui ,需要在每个npm包的

package.json
中做额外的配置,具体可查看 vue-cli3-lerna-ui/plugins/vue-cli-plugin-ui-base/package.json 的
publishConfig
字段信息。

总结

对比Element的UI框架设计,采用Vue CLI 3 & Lerna的形式可以简化UI框架的配置,使各个UI组件的构建配置互相独立,对于简单的UI组件可以利用Vue CLI 3的默认webpack配置。同时采用Monorepo的设计结构( Why is Babel a monorepo? ),配合Lerna工具,可以使得UI框架修复问题和发布新功能的响应能力变得更快。

生成UI框架实践项目的github地址是 ziyi2/vue-cli3-lerna-ui ,包括了

preset.json
、自己设计的Vue CLI插件以及自己设计的一系列UI组件(和生成的UI框架示例稍有不同),如果觉得整体结构有不合理的或者考虑不够全面的地方,欢迎大家提issue,这样我也可以对它进行完善。如果大家感兴趣,希望大家能够Star一下,这里拜谢大家了!

参考链接

Element – github
npm scripts 使用指南 – 阮一峰
umd – github
Element官方文档
eslint – eslint文档
Module Definition Systems – Webpack文档
eslint-loader – github
webpack-node-externals – github
Externals – Webpack文档
babel-plugin-module-resolver – github
Gulp – Gulp文档
Vue CLI 3/开发/构建目标/库 – Vue CLI文档
Vue CLI 3/开发/webpack相关/审查项目的webpack配置 – Vue CLI文档