generator-janna

飞猪商家端脚手架

Usage no npm install needed!

<script type="module">
  import generatorJanna from 'https://cdn.skypack.dev/generator-janna';
</script>

README

generator-janna

JANNA配套脚手架工具,生成JANNA项目(基于ant Design、dva、roadhog)或者dva相关文件(model、route、component),生成的项目包括了在商家端体系中不断的沉淀的scu套件(接口请求等工具模块、行业组件、通用组件扩充、监控)、默认配置,实现中后台项目的快速搭建。

目标

飞猪后台类业务开发收拢到一套技术体系下,对新技术的引入执行与 C 端一致的严格 Review 机制,保持整个技术基线的统一,降低开发成本。

工具安装

mac获取权限请使用sudo

1、安装 tnpm
$ npm install -g tnpm@latest --registry=http://registry.npm.alibaba-inc.com
2、安装 Yeoman、Grunt、generator
$ tnpm install -g yo grunt-cli generator-janna

初始化一个后台项目

$ yo janna

选择项目,根据提示完成初始化任务:

项目骨架初始化完成,目录结构如下:

├── build/
├── grunt/
    └── exec.js     // grunt自动化任务配置文件
├── Gruntfile.js
└── src/
    ├── components/    // 业务组件
    ├── public/
        └── index.html // 本地开发的页面
    ├── models/        // 业务逻辑
    ├── routes/        // 路由页面
    ├── services/      // 服务api
    ├── tests/         // 测试
    ├── utils/         // 工具
    ├── router.jsx     // router文件
    ├── index.js       // dva入口文件
    └── index.less     // 对全局影响的less文件
├── .roadhogrc.js      // roadhog配置文件
├── .eslintrc          // eslint配置
├── webpack.config.js  // 自定义webpack配置

生成model、route、component等文件

在项目根目录执行:

$ yo janna

选择对应文件类型,根据提示输入

你也可以使用一下快捷命令直接生成对应类型文件

$ yo janna:route
$ yo janna:model
$ yo janna:component

本地开发及发布

在当前项目根目录下执行

1、 本地开发启动服务

grunt dev

2、 拉取最新分支基于当前分支的最大版本号,以及(majorminor)与C端保持一致

grunt newbranch

3、 发布到cdn日常环境

grunt prepub:<message>

4、 发布到cdn生产环境

grunt publish:<message>

grunt prepubgrunt publish 可以在后面加commit message,例如

grunt prepub:'添加某功能'

可以使用 nobuild 来跳过构建流程

grunt publish:nobuild

依赖的技术

社区开源项目: grunt yeoman