0.0.4 • Published 2 years ago

@miaocunzhi/cli-umi v0.0.4

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

快速上手

默认集成了antd,动态路由注册加载,antd-extra等功能

代码目录说明

.
├── dist/                           // 默认打包目录
├── mock/                           // mock数据文件目录
└── src/                            // 源码目录
    ├── assets/                     // 静态资源目录,一般用于存放静态资源比如图片  
    ├── common/                     // 公用代码目录
        ├── component/              // 公共组件
    ├── layouts/                    // 布局文件目录
        ├── index.js                // 基础布局,绑定了ModalView
        └── index.css              // 基础布局样式
    ├── pages                       // 路由级页面组件目录,按模块拆分
        ├── exception/              // 异常路由组件目录
            ├── 404.js              // 404 异常路由组件
        ├── main                    // 模块目录,名字自取,包含路由组件,样式,model和service
            ├── models
                ├── main.js         // 模块对应的model文件
            ├── index.js            // 路由组件
            ├── index.less          // 模块对应的样式文件
            └── service.js          // 模块对应的接口请求文件
        └── xxx                     // 自定义模块目录,按需添加
    ├── global.less                 // 全局样式文件
    └── global.js                   // 在入口文件的最前面被自动引入,可以在这里加载补丁,做一些初始化的操作等。
├── .editorconfig                   // 编辑器格式约定文件,可以更改类似缩进的配置
├── .eslintrc                       // eslint配置文件,可以调整es6代码的检查约束配置
├── .umirc.js                       // umi的配置文件,需要根据项目调整publicPath路径,否则将导致发布后,动态加载的资源和JS路径错误,配置显示路由
└── package.json

page目录特殊说明

为了改变原有dva项目中,routes,models,services 这种按技术类型划分目录导致的模块代码结构混乱和不清晰的问题,现将一个模块的代码整体写到page目录下,该目录下包含路由组件,model文件,service文件,样式文件等,文件路径引用方式由代码自身决定

router注册说明,umi的router显示配置在umirc.js里

弹窗统一使用说明

import {ModalView} from "antd-extra";  // 弹窗组件
import ArtbagEdit from './artbagEdit'; // 弹窗内部的业务组件

// 需要弹窗的时机
 ModalView.open(
  ArtbagEdit, // 弹窗内部组件引用
  {title: child ? '编辑工艺包' : '新建工艺包'},// 弹窗配置项,具体参见antd-extra的文档
  {node, child} // 传入弹窗内部组件的props
  );

页面标题样式

 import {PageTitle} from "antd-extra";

 <PageTitle
              actions={
                <Button
                  type="primary"
                  disabled={!(selectNode && selectNode.artbagId)}
                  onClick={this.openEditArtbagVersion()}
                >新建
                </Button>
              }
            >工艺包版本列表
            </PageTitle>

用户主动操作的结果反馈

具体使用参见Ant Design的Message组件

  • 何时使用
  • 可提供成功、警告和错误等反馈信息。

顶部居中显示并自动消失,是一种不打断用户操作的轻量级提示方式。

全局展示通知提醒信息

目前脚手架提供全局异常捕获,model中的异步方法调用异常等会在全局捕获,model的effect方法中无需手动try catch处理

组件使用参见Ant Design的Notification组件

经常用于以下情况:

  • 较为复杂的通知内容。

  • 带有交互的通知,给出用户下一步的行动点。

  • 系统主动推送。

删除等重要操作的确认提示

  • table中的actions区域的按钮删除提示,请使用Popconfirm的气泡确认
          <Popconfirm
            title="是否确认删除该设备?"
            onConfirm={this.confirmDelete.bind(this, record)}
            okText="确认删除"
            cancelText="取消"
          >
            <a>删除</a>
          </Popconfirm>
  • 其他场景的删除提示请使用Modal的confirm,具体参见ant design的Modal组件

更多规范待出

安装 cli-umi

通过 npm 安装 cli-umi 并确保版本是 1.0.0 或以上。

$ npm install @mczowner/cli-umi -g
$ cli-umi -v
cli-umi version 1.0.0

创建新应用

安装完 cli-umi 之后,就可以在命令行里访问到 cli-umi 命令(不能访问?)。现在,你可以通过 cli-umi new 创建新应用。

$ cli-umi new ziot-front-quickstart

这会创建 ziot-front-quickstart 目录,包含项目初始化目录和文件,并提供开发服务器、构建脚本、数据 mock 服务、代理服务器等功能。

然后我们 cd 进入 ziot-front-quickstart 目录,并启动开发服务器:

$ cd ziot-front-quickstart
$ npm start

几秒钟后,你会看到以下输出:

Compiled successfully!

The app is running at:

  http://localhost:8000/

Note that the development build is not optimized.
To create a production build, use npm run build.

在浏览器里打开 http://localhost:8000 ,你会看到 ziot-front 的demo界面。

构建应用

完成开发并且在开发环境验证之后。先执行下面的命令:

    "start": "cross-env ESLINT=none SOCKET_SERVER=none umi dev",
    "start:no-proxy": "cross-env NO_PROXY=true  SOCKET_SERVER=none ESLINT=none umi dev",
    "build:daily": "rimraf dist && cross-env ESLINT=none PATH_MODE=daily umi build",
    "build:test": "rimraf dist && cross-env ESLINT=none PATH_MODE=test umi build"

根据不同的环境执行 npm run build:daily或者npm run build:test

build 命令会打包所有的资源,包含 JavaScript, CSS, web fonts, images, html 等。然后你可以在 dist/ 目录下找到这些文件。

cdn配置

1,gitlab 增加webhook(菜单:setting-Integrations):

url: http://10.45.29.3:7778/webhook
token:	Hello
取消 Enable SSL verification 勾选

2,修改 .umirc.js

const publicPaths = {
  daily: 'http://10.45.29.3:9500/xxx/daily/',//此处 xxx 需要更改为实际项目名
  test: '/cdn/xxx/',//此处 xxx 需要更改为实际项目名
  demo: '/cdn/xxx/',//此处 xxx 需要更改为实际项目名
  local:'http://localhost:8000/'
};

3,至 vms-门户资源管理 菜单中配置cdn

4,创建远程分支 feature/daily , test

5, build daily 并 push