y: 物料

简介

在飞冰中,模板处于物料的最上层,通过区块、布局、页面可组合成模板,使用者可以直接基于模板进行项目开发;因此,模板开发的背后本质上是指开发一套基础的脚手架模板,提供给使用者作为基础工程进行项目初始化。

templates

模板开发规则

模板开发遵循模开发规则,上面讲到这里的模板本质上是指开发一套基础的脚手架模板,提供给使用者作为基础工程进行项目初始化,因此,模板开发还需要遵循以下规则:

  • 脚本配置:通过 startbuild 脚本启动调试服务、构建应用
  • 导航配置:通过 src/menuConfig.js 配置导航
  • 路由配置:通过 src/routerConfig.js 配置路由
  • 页面配置:通过 src/pages 配置页面

配置脚本

脚手架模板约定 package.json 里需要声明 scripts 字段,且必须存在 start:npm startbuild:npm run build 脚本,通过 npm run startnpm run build 可启动项目调试服务与应用构建功能。大家在使用 Iceworks 时,会经常用到 Iceworks 项目面板顶部的 启动调试服务、构建项目__ __等功能,其背后的原理则是通过 GUI 的形式去调用了 CLI 的命令。比如我们为飞冰项目提供的 ice-scripts

Iceworks 会识别模板中定义的 scripts 字段中的 startbuild 脚本启动调试服务、构建应用。在自定义模板中,我们推荐你使用 ice-scripts, 当然,你也可以自己去实现一个完整的项目构建工具,或者使用社区开源的构建工具,比如 Vue 社区大多数用户使用的 vue-cli ,AngularJs 也有对应的 angular-cli 等。

  1. // 比如基于 ice-scripts 工程的配置
  2. "scripts": {
  3. "start": "ice dev",
  4. "build": "ice build"
  5. },
  6. // 比如基于 vue-cli 工程的配置
  7. "scripts": {
  8. "start": "vue dev",
  9. "build": "vue build"
  10. },

配置导航

脚手架模板约定必须要有 src/menuConfig.js 文件,用于配置应用的导航信息,在 Iceworks 创建页面时,输入的页面导航名会写入该文件:

menuConfig 格式:

  1. const asideMenuConfig = [
  2. name: 'Dashboard',
  3. path: '/dashboard',
  4. icon: 'home2',
  5. ]
  6. export default asideMenuConfig;

Iceworks 配置效果图:

template

路由配置

脚手架模板约定必须要有 src/routerConfig.js 文件,用于配置应用的路由信息,在 Iceworks 创建页面时,输入的路由路径会写入该文件:

template

页面配置

脚手架模板约定必须要有 src/pages 目录,用于在新建页面时添加页面到该目录下,在 Iceworks 创建页面时,输入的页面目录名会写入该目录下:

template

目录结构

在上面的介绍中,大家对模板开发应该有了初步的印象,接下来我们简单了解下模板开发的目录约定。

  1. template
  2. ├── src
  3. ├── components
  4. | └── Container
  5. ├── layouts
  6. | └── BasicLayout
  7. ├── pages (必须)
  8. | └── Dashboard
  9. ├── routerConfig.js (必须)
  10. ├── menuConfig.js (必须)
  11. └── index.js
  12. ├── package.json
  13. ├── public
  14. | ├── favicon.png
  15. | └── index.html
  16. ├── test
  17. ├── package.json
  18. └── README.md

如上只约定了模板开发的最简目录结构,只需要确保有必须的文件既可以,其他完全可以自定义约定和按需实现,比如如何根据 menuConfig 映射到对应的 UI,如果将 routerConfig 映射到对应的路由表等等。