2021-03-15 初稿 2021-10-15 补充对一体化进行表述

经过之前的技术铺垫,终于到了这一步。

思路

  • 您要创建一个什么项目?
    • Vue 先只处理这个 vue.config
  • 想使用什么打包技术?
    • webpck5
    • vite2
    • 开发vite2 打包webpack5
  • 使用 vue 哪个版本?
    • vue2
    • vue3
  • 需要支持ts吗?
    • class style: vue2 + decorator
    • vue2 + compositon
    • vue3 + ts
  • 需要支持 router 吗
  • 需要支持 vuex 吗
  • 需要支持UI框架吗
    • element
    • vant
  • 需要预编译器吗
    • less
    • 待补充
  • 代码格式化?
    • prettier
    • 不需要
  • 选择格式化特性
    • 保存时候格式化
    • 提交时 格式化并修复
  • 单元测试?
    • Mocha+Chai
    • Jest
  • E2E 测试?
    • cypress
  • 完成了,列个清单

vue3-vite2-admin

otto 想法汇总

原文 https://www.yuque.com/xinbao37/roadmap/fkyliy

以下想法是个人观点:

一体化脚手架工具,内部代号 ox

  • 短期目标: vite 版本的 vue-cli ,可以创建模板,管理依赖
  • 中期目标: vite 版 vue ui ,提供可视化 GUI 页面,管理多项目依赖,封装简化 lerna、封装曝光推荐组件
  • 长期目标:可视化页面管理路由、接管构建,把 jenkins/gitlab-cli 作为构建选项接入

十二生肖里谁能代表默默付出、勤勤恳恳、任劳任怨,可以帮我完成项目全生命周期的管理功能。狗已经用了,牛! ox! 老牛!默默耕耘,挺适合作为脚手架的代表形象。

牛 ox 勤勤恳恳、任劳任怨,一体化脚手架

技术规划:

愿景:

  • 新项目能创建,根据需要提供初始化模板、功能、依赖
  • 已存在的项目管理依赖,引入新依赖
  • 部署项目全托管
  • 从创建就考虑的微前端接入
  • 内部 serverless 平台模块化接入、多端交付。从字节跳动进行展望 https://www.yuque.com/xinbao37/learn/efeyv3

api 设计

register global as ox

  • ox create [projectName] 创建 blank/base 项目
  • ox create [projectName] -type all 默认完整项目
  • ox create 交互式完成创建
  • ox add component 创建组件库
  • ox add pages 创建路由页面
  • ox add feature [route/pinia/ts/eslint/prettier/element3/nutui/cypress] 添加功能
  • ox ui ui界面创建
  • ox update [ts/route/vue] 提升最新的版本,但这依赖内置的 monorepo 小包
  • ox install
  • ox commit 引入 git cz
  • ox dev/build/start/serve 开发、构建、预览
  • ox docs 像 rust 一样内置文档
  • ox http 规划中,看如何结合 swagger 生成 req/res 类型
  • ox publish 规划中,通过配置文件上线到远程,或者结合 jenkins

common:

  • ox -v/-V/-version/--version 版本号
  • ox -h/--help 帮助
  • ox author 展示贡献者信息

monorepo+pnpm

依赖项补充

  • chalk 颜色log
  • cac/minimist 参数解析
  • inquirer 交互式互动
  • easy-table
  • ora loading
  • semver 版本号