ant-design / ant-design-pro-cli

Cli tool of Ant Design Pro

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Todo

nikogu opened this issue · comments

commented

ant-design/antd-sketchapp#60

参考 vue-cliangular-cli,确定了 pro-cli 的定位。基于 Ant Design Pro 脚手架 的辅助配套工具。README

  • pro init:初始化 Ant Design Pro 脚手架
  • pro new:添加 页面、组件、model 模板
    • 因为已经是 antd-pro 的脚手架基础,所以这里的页面和组件以及 model 都不是 antd pro 里面的,而是简介的代码模板,详见:https://github.com/ant-design/test2-cli/tree/master/boilerplate ,后续会加上无依赖简化版的页面、组件模板,如:卡片布局(antd pro 里面 dashboard 的页面抽象)、表单页(antd pro 里面 表单页的抽象)等

todo

  • init
  • model template
  • page template
    • blank
    • BasicForm
    • BasicList
    • CardList
  • component
    • smart component(standard)
    • dumb component(stateless)
  • service template
commented

这个先 hold 一下,线下跟 水鱼沟通了一下,这个问题并没有那么简单,个人感觉最好直接用 bigfish @afc163

内部工具比较泛滥,我觉得这个问题可能内部需要确定一下

bigfish 外部用不了,pro 本身需要简化和收敛脚手架的配置,这个工具也不会对外服务,就是作为脚手架本身的搭配,这个不冲突。

commented

@afc163 bigfish 改一下就可以开源了,其中涉及到很多问题,比如:

如果封装成 pro start ,是否还需要暴露 roadhog的配置文件,如 .roadhogrc 等,如果需要做到 bigfish 那样很全面的封装(只暴露 bigfish )其他依赖工具都集成好,那么 roadhog 还用不了(之前他们俩讨论过),所以底层的 start、build、lint 都要自己写,但是这些 bigfish 都写好了

如果我们需要开源版,可以用让 bigfish 支持(可把内部需要改成插件机制?)

现在工具充斥着:roadhog、dora、ant-tool、bigfish....再来一个 pro =。-

确实会有问题,可以先 hold 按 cli 工具来。

commented

经过上次周报的讨论,那么 pro cli 具备的功能只是 new template 吗? @afc163 @ddcat1115 看下

dva g xx 的功能要不要一起集成进来,毕竟都是创建模板。

commented

实际用了下 dva g,貌似不是很好用...我们直接包含他的模板好了,我还想的直接调用它

模板要从远端读取并缓存在本地。

commented

最新更新(包含产品定位),详见一楼: @ddcat1115 @afc163

因为已经是 antd-pro 的脚手架基础,所以这里的页面和组件以及 model 都不是 antd pro 里面的,而是简介的代码模板

除了内建的空页面/简化模板之外,需要直接远程读取 pro 里的完整模板,否则内容无法同步。

这块的使用方式,要结合『新建页面』文档。让用户很简单就能创建他们的业务模板。

commented

@afc163 不用吧 =。-,用户默认不是用的 ant design pro 的脚手架吗,默认包含组件?

如果他用的不是,那么使用会有一些问题,因为我们路由、工具函数之类的都有依赖关系,用起来会不会太复杂。

commented

我设想的是,后期跟 vue-cli 一样,有很多模板可以选择,我们现在这个是大而全的(全家桶),后面有了配置功能,就会有更多脚手架模板,这样在脚手架基础上,做配套就规范好用很多。

所以,如果前提是基于我们基础脚手架,那么远程 fetch 组件的功能是方便易用的,否则现在基本上同步内容不太靠谱,因为我们 antd pro 都有相互的依赖关系,比如 layout 依赖 utils 和 common/nav,这些依赖倒是可以拉过来,但是可能用户就蒙逼了 =。-

感觉是个问题。

我的初始预想是这样的,我们有很多内建的模板。用户需要开发一个详情页面,使用 pro-cli 在命令行输入 pro new,我们把已有模板列给他,然后选择『基础详情页』,bang,基本的页面和坑位都建好了,而且能预览。然后他开始填接口、数据、和内容。

具体技术上可能会比较复杂,如果他修改了路由、移除和修改了业务组件等等。。

commented

用户需要开发一个详情页面,使用 pro-cli 在命令行输入 pro new,然后选择『基础详情页』,bang,基本的页面和坑位都建好了。然后他开始填接口、数据、和内容。

这个如果是抽象的内容(基于现有 pro 的页面模板的简化,去掉相关依赖,只需要提供占位)是可以实现的,也是现在 pro 需要做的,但是如果直接用 pro 里面的模板,比如:BasicLayout,是有问题的,因为它依赖了项目里其他的东西(common/nav & 各种 components/xxx)

commented

后续的计划就是抽离几个模板:

  • Form Template
  • List Template
  • DashBoard template
  • Login template

除非把 BasicLayout 、业务组件、utils 都抽象掉,封装成更高维度的应用。否则我的设想比较难达成。

commented

可以先跟 vue-cliangular-cli 一样,提供一些常用的简单模板,后续较为复杂的可以在想想。

抽离确实可以解决问题,相当于提成了独立的组件/模板,单独维护。

我担心的是,两边如何保持同步,pro 架构改了怎么办,一些模板升级/修改/优化了怎么办,有没有办法进行同步。

commented

@afc163 那应该。。。比较困难。。。除非 pro 本身写的就很独立

对,但是这样又失去了灵活性。

commented

要不还是先抽离,因为抽离的模板应该不多,可以先人肉维护更新,后续想到好的办法再来替换,因为实际上这些模板如果自动生成,用起来还是很爽的,vue-cli 也就 5、6 个脚手架模板,用的人好多。。。

可以,我感觉现在有空页面都会方便很多,包括 services、model、smart component、dumb component 的联动创建。先有个东西体验体验。

commented

@afc163 cli 升级后怎么 处理旧项目