egg-gen-cli v1.0.11
huiju-gen-cli
快速安装
首先,NRM切换到内部NPM服务器地址,如果没有安装NRM请自行全局安装:
$ nrm use verdaccio
接着安装全局脚手架包:
$ npm i -g huiju-gen-cli
安装工程:
$ gen <projectname>
$ cd <projectname> && npm install
目录结构
<projectname>
|-- app
|-- controller 控制层
|-- <pagecontroller>
具体页面控制器文件夹
|-- extend 内置对象扩展
|-- context.js 全局ctx扩展
|-- public 静态资源文件夹(打包之后生成)
|-- css
|-- script
|-- images
|-- router 路由
|-- service 服务层
|-- views 页面模板(打包之后生成)
|-- config egg工程配置
|-- logs 日志文件
|-- build 打包及自动化构建脚本引用及配置
|-- biild.js webpack生产环境打包引用
|-- create.js 自动化构建引用
|-- pageConf.json 页面配置中心
|-- client 前端业务逻辑开发目录
|-- common 部分第三方包/插件文件夹
|-- utils 常用工具方法封装
|-- widgets 全局公共组件
|-- layouts 公共布局模板
|-- module 页面及组件目录
|-- widgets 模块共用组件(可选)
|-- <pageview>
页面文件夹
|-- widgets 页内组件文件夹
|-- images 图片文件夹
|-- page.html 页面模板入口
|-- page.scss 页面样式入口
|-- page.js 页面JS入口
|-- test 单元测试
|-- mock Mock数据
脚本命令
npm run dev
开发模式npm run start
生产模式npm run build
生产环境打包发布npm run addview <viewname> -- --module=<modulename>
: 添加页面,同时页面添加初始化后的controller、router。 可一次性添加多个页面,空格隔开就行,如:npm run addview home login ...npm run rmview <viewname> -- --module=<modulename>
: 删除页面,同时删除对应controller、router文件。npm run addwidget <widgetname> -- --module=<modulename> --view=<viewname>
: 添加组件,没有module属性时默认添加全局组件。npm run rmwidget <widgetname>
: 删除组件。npm run addlayout <layoutname>
: 添加全局共用布局母版。npm run initviews
: 根据配置项自动化构建 。
工程打包构建配置
脚手架已经默认将工程的webpack配置集成到了egg-huiju-gen-webpack
中,所以大家无需再配置webpack.config.js。不过,我们还暴露了一些可配置项,根据需求进行自定义配置:
port <Number>
开发环境webpack开启dev server时的端口,默认:9000。
hotClient <Object>
浏览器热更新配置对象,详细配置说明参考webpack-hot-client
,默认配置如下。
- reload:
<Boolean>
浏览器热更新,默认:true; - logLeavel:
<String>
浏览器控制台日志,默认:info;
browser <String|Boolean>
配置开发环境webpack编译成功之后自动打开浏览器。默认:http://127.0.0.1:7001。
proxy <String|Boolean>
开发环境静态资源代理指向webpack dev server的内存文件。
splitChunks <Object>
配置公共代码块切割规则。具体配置方法参考split-chunk-plugin
。
externals
外置全局包配置,默认配置jQuery。
自动化构建配置项:
自动化构建脚本已经集成到egg-huiju-gen-build
中。
配置方式:在build/pageConf.json中加入相关的页面构建配置:
- widgets:
Array[String]
全局共用组件; <modulename>
: 模块- widgets:
Arra[String]
模块共用组件; - views:
Array[Object]
- path:
String
页面文件夹路径; - router:
String
页面路由,可选,无此项时根据path创建路由。 - widgets:
Array[String]
页内组件。
- path:
- widgets:
配置完成之后,执行npm run initviews即可自动构建项目所需页面、组件。
也可在开发过程添加配置,然后重新执行即可增量添加相应组件及页面。
对组件或者页面删除不可使用该方式,可以使用npm run rmwidget/rmview。
注意:删除之后记得同步更新配置项。