单页应用开发教程
NEJ Technical Topic
genify(caijfcorp)
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
需求说明
bull 系统由五个对外可
访问(通过地址栏
可直接定位)模块
组成
需求说明
bull 日志管理
ndash 日志日志列表可切换收件箱草稿箱回收站标签
ndash 标签标签列表可转至日志按标签查看列表
bull 博客设置
ndash 账号管理
bull 基本资料用户基本资料设置表单
bull 个人经历个人经历填写表单
ndash 权限设置权限设置表单
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统分解
bull 绘制模块层级关系图
日志管理
日志 标签
博客设置
账号管理
基本资料 个人经历
权限设置
系统
日志 标签
基本资料 个人经历
权限设置
系统分解
bull 抽象出模块之间的依赖关系
日志管理
日志 标签
博客设置
账号管理
基本资料 个人经历
权限设置
系统
blog
list tag
setting
account
profile education
permission
systemm
blog
list tag
setting
account permission
profile edu
系统分解
bull 根据UMI规则格式化依赖关系树
m
blog
list tag
setting
account permission
profile edu
m
blog
list tag
setting
account permission
edu
系统分解
bull 确定可访问模块注册结点
m
blog
list tag
setting
account permission
edu
日志 标签 基本资料
个人经历
权限设置
系统分解
bull 确定布局模块注册结点
m
blog
list tag
setting
account permission
edu
blog
account
setting
m
系统分解
bull 映射模块功能
m
blog
list tag
setting
account permission
edu
m
setting
account
系统分解
bull 模块分解原则模块之间无耦合性
收件箱切换
类别列表
标签列表日志列表
blog
tag listbox
class
blogboxblogtagbloglistblogclass
系统分解
bull 分解结果
ndash 对外模块
ndash 私有模块
m
blog
list tag
setting
account permission
edu
blog
tag listbox
class
tab setting
tab account
tab
系统分解
bull 绘制模块功能规范表
名称 描述
模块UMI m
实现文件 modulelayoutsystemindexhtml
模块构造 wdml_$$ModuleLayoutSystem
模块功能1 提供左右布局容器2 日志管理博客设置切换选中状态同步(组合tab)
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
构建目录
Project
deploy
webroot
publisher
res
src css
html
javascript
module
releaseconf
releasebat
apphtml
打包工具
打包配置
打包指令
静态资源
前端源码
模块实现
系统入口
bull 项目目录
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
需求说明
bull 系统由五个对外可
访问(通过地址栏
可直接定位)模块
组成
需求说明
bull 日志管理
ndash 日志日志列表可切换收件箱草稿箱回收站标签
ndash 标签标签列表可转至日志按标签查看列表
bull 博客设置
ndash 账号管理
bull 基本资料用户基本资料设置表单
bull 个人经历个人经历填写表单
ndash 权限设置权限设置表单
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统分解
bull 绘制模块层级关系图
日志管理
日志 标签
博客设置
账号管理
基本资料 个人经历
权限设置
系统
日志 标签
基本资料 个人经历
权限设置
系统分解
bull 抽象出模块之间的依赖关系
日志管理
日志 标签
博客设置
账号管理
基本资料 个人经历
权限设置
系统
blog
list tag
setting
account
profile education
permission
systemm
blog
list tag
setting
account permission
profile edu
系统分解
bull 根据UMI规则格式化依赖关系树
m
blog
list tag
setting
account permission
profile edu
m
blog
list tag
setting
account permission
edu
系统分解
bull 确定可访问模块注册结点
m
blog
list tag
setting
account permission
edu
日志 标签 基本资料
个人经历
权限设置
系统分解
bull 确定布局模块注册结点
m
blog
list tag
setting
account permission
edu
blog
account
setting
m
系统分解
bull 映射模块功能
m
blog
list tag
setting
account permission
edu
m
setting
account
系统分解
bull 模块分解原则模块之间无耦合性
收件箱切换
类别列表
标签列表日志列表
blog
tag listbox
class
blogboxblogtagbloglistblogclass
系统分解
bull 分解结果
ndash 对外模块
ndash 私有模块
m
blog
list tag
setting
account permission
edu
blog
tag listbox
class
tab setting
tab account
tab
系统分解
bull 绘制模块功能规范表
名称 描述
模块UMI m
实现文件 modulelayoutsystemindexhtml
模块构造 wdml_$$ModuleLayoutSystem
模块功能1 提供左右布局容器2 日志管理博客设置切换选中状态同步(组合tab)
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
构建目录
Project
deploy
webroot
publisher
res
src css
html
javascript
module
releaseconf
releasebat
apphtml
打包工具
打包配置
打包指令
静态资源
前端源码
模块实现
系统入口
bull 项目目录
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
需求说明
bull 系统由五个对外可
访问(通过地址栏
可直接定位)模块
组成
需求说明
bull 日志管理
ndash 日志日志列表可切换收件箱草稿箱回收站标签
ndash 标签标签列表可转至日志按标签查看列表
bull 博客设置
ndash 账号管理
bull 基本资料用户基本资料设置表单
bull 个人经历个人经历填写表单
ndash 权限设置权限设置表单
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统分解
bull 绘制模块层级关系图
日志管理
日志 标签
博客设置
账号管理
基本资料 个人经历
权限设置
系统
日志 标签
基本资料 个人经历
权限设置
系统分解
bull 抽象出模块之间的依赖关系
日志管理
日志 标签
博客设置
账号管理
基本资料 个人经历
权限设置
系统
blog
list tag
setting
account
profile education
permission
systemm
blog
list tag
setting
account permission
profile edu
系统分解
bull 根据UMI规则格式化依赖关系树
m
blog
list tag
setting
account permission
profile edu
m
blog
list tag
setting
account permission
edu
系统分解
bull 确定可访问模块注册结点
m
blog
list tag
setting
account permission
edu
日志 标签 基本资料
个人经历
权限设置
系统分解
bull 确定布局模块注册结点
m
blog
list tag
setting
account permission
edu
blog
account
setting
m
系统分解
bull 映射模块功能
m
blog
list tag
setting
account permission
edu
m
setting
account
系统分解
bull 模块分解原则模块之间无耦合性
收件箱切换
类别列表
标签列表日志列表
blog
tag listbox
class
blogboxblogtagbloglistblogclass
系统分解
bull 分解结果
ndash 对外模块
ndash 私有模块
m
blog
list tag
setting
account permission
edu
blog
tag listbox
class
tab setting
tab account
tab
系统分解
bull 绘制模块功能规范表
名称 描述
模块UMI m
实现文件 modulelayoutsystemindexhtml
模块构造 wdml_$$ModuleLayoutSystem
模块功能1 提供左右布局容器2 日志管理博客设置切换选中状态同步(组合tab)
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
构建目录
Project
deploy
webroot
publisher
res
src css
html
javascript
module
releaseconf
releasebat
apphtml
打包工具
打包配置
打包指令
静态资源
前端源码
模块实现
系统入口
bull 项目目录
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
需求说明
bull 日志管理
ndash 日志日志列表可切换收件箱草稿箱回收站标签
ndash 标签标签列表可转至日志按标签查看列表
bull 博客设置
ndash 账号管理
bull 基本资料用户基本资料设置表单
bull 个人经历个人经历填写表单
ndash 权限设置权限设置表单
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统分解
bull 绘制模块层级关系图
日志管理
日志 标签
博客设置
账号管理
基本资料 个人经历
权限设置
系统
日志 标签
基本资料 个人经历
权限设置
系统分解
bull 抽象出模块之间的依赖关系
日志管理
日志 标签
博客设置
账号管理
基本资料 个人经历
权限设置
系统
blog
list tag
setting
account
profile education
permission
systemm
blog
list tag
setting
account permission
profile edu
系统分解
bull 根据UMI规则格式化依赖关系树
m
blog
list tag
setting
account permission
profile edu
m
blog
list tag
setting
account permission
edu
系统分解
bull 确定可访问模块注册结点
m
blog
list tag
setting
account permission
edu
日志 标签 基本资料
个人经历
权限设置
系统分解
bull 确定布局模块注册结点
m
blog
list tag
setting
account permission
edu
blog
account
setting
m
系统分解
bull 映射模块功能
m
blog
list tag
setting
account permission
edu
m
setting
account
系统分解
bull 模块分解原则模块之间无耦合性
收件箱切换
类别列表
标签列表日志列表
blog
tag listbox
class
blogboxblogtagbloglistblogclass
系统分解
bull 分解结果
ndash 对外模块
ndash 私有模块
m
blog
list tag
setting
account permission
edu
blog
tag listbox
class
tab setting
tab account
tab
系统分解
bull 绘制模块功能规范表
名称 描述
模块UMI m
实现文件 modulelayoutsystemindexhtml
模块构造 wdml_$$ModuleLayoutSystem
模块功能1 提供左右布局容器2 日志管理博客设置切换选中状态同步(组合tab)
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
构建目录
Project
deploy
webroot
publisher
res
src css
html
javascript
module
releaseconf
releasebat
apphtml
打包工具
打包配置
打包指令
静态资源
前端源码
模块实现
系统入口
bull 项目目录
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统分解
bull 绘制模块层级关系图
日志管理
日志 标签
博客设置
账号管理
基本资料 个人经历
权限设置
系统
日志 标签
基本资料 个人经历
权限设置
系统分解
bull 抽象出模块之间的依赖关系
日志管理
日志 标签
博客设置
账号管理
基本资料 个人经历
权限设置
系统
blog
list tag
setting
account
profile education
permission
systemm
blog
list tag
setting
account permission
profile edu
系统分解
bull 根据UMI规则格式化依赖关系树
m
blog
list tag
setting
account permission
profile edu
m
blog
list tag
setting
account permission
edu
系统分解
bull 确定可访问模块注册结点
m
blog
list tag
setting
account permission
edu
日志 标签 基本资料
个人经历
权限设置
系统分解
bull 确定布局模块注册结点
m
blog
list tag
setting
account permission
edu
blog
account
setting
m
系统分解
bull 映射模块功能
m
blog
list tag
setting
account permission
edu
m
setting
account
系统分解
bull 模块分解原则模块之间无耦合性
收件箱切换
类别列表
标签列表日志列表
blog
tag listbox
class
blogboxblogtagbloglistblogclass
系统分解
bull 分解结果
ndash 对外模块
ndash 私有模块
m
blog
list tag
setting
account permission
edu
blog
tag listbox
class
tab setting
tab account
tab
系统分解
bull 绘制模块功能规范表
名称 描述
模块UMI m
实现文件 modulelayoutsystemindexhtml
模块构造 wdml_$$ModuleLayoutSystem
模块功能1 提供左右布局容器2 日志管理博客设置切换选中状态同步(组合tab)
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
构建目录
Project
deploy
webroot
publisher
res
src css
html
javascript
module
releaseconf
releasebat
apphtml
打包工具
打包配置
打包指令
静态资源
前端源码
模块实现
系统入口
bull 项目目录
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
系统分解
bull 绘制模块层级关系图
日志管理
日志 标签
博客设置
账号管理
基本资料 个人经历
权限设置
系统
日志 标签
基本资料 个人经历
权限设置
系统分解
bull 抽象出模块之间的依赖关系
日志管理
日志 标签
博客设置
账号管理
基本资料 个人经历
权限设置
系统
blog
list tag
setting
account
profile education
permission
systemm
blog
list tag
setting
account permission
profile edu
系统分解
bull 根据UMI规则格式化依赖关系树
m
blog
list tag
setting
account permission
profile edu
m
blog
list tag
setting
account permission
edu
系统分解
bull 确定可访问模块注册结点
m
blog
list tag
setting
account permission
edu
日志 标签 基本资料
个人经历
权限设置
系统分解
bull 确定布局模块注册结点
m
blog
list tag
setting
account permission
edu
blog
account
setting
m
系统分解
bull 映射模块功能
m
blog
list tag
setting
account permission
edu
m
setting
account
系统分解
bull 模块分解原则模块之间无耦合性
收件箱切换
类别列表
标签列表日志列表
blog
tag listbox
class
blogboxblogtagbloglistblogclass
系统分解
bull 分解结果
ndash 对外模块
ndash 私有模块
m
blog
list tag
setting
account permission
edu
blog
tag listbox
class
tab setting
tab account
tab
系统分解
bull 绘制模块功能规范表
名称 描述
模块UMI m
实现文件 modulelayoutsystemindexhtml
模块构造 wdml_$$ModuleLayoutSystem
模块功能1 提供左右布局容器2 日志管理博客设置切换选中状态同步(组合tab)
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
构建目录
Project
deploy
webroot
publisher
res
src css
html
javascript
module
releaseconf
releasebat
apphtml
打包工具
打包配置
打包指令
静态资源
前端源码
模块实现
系统入口
bull 项目目录
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
系统分解
bull 抽象出模块之间的依赖关系
日志管理
日志 标签
博客设置
账号管理
基本资料 个人经历
权限设置
系统
blog
list tag
setting
account
profile education
permission
systemm
blog
list tag
setting
account permission
profile edu
系统分解
bull 根据UMI规则格式化依赖关系树
m
blog
list tag
setting
account permission
profile edu
m
blog
list tag
setting
account permission
edu
系统分解
bull 确定可访问模块注册结点
m
blog
list tag
setting
account permission
edu
日志 标签 基本资料
个人经历
权限设置
系统分解
bull 确定布局模块注册结点
m
blog
list tag
setting
account permission
edu
blog
account
setting
m
系统分解
bull 映射模块功能
m
blog
list tag
setting
account permission
edu
m
setting
account
系统分解
bull 模块分解原则模块之间无耦合性
收件箱切换
类别列表
标签列表日志列表
blog
tag listbox
class
blogboxblogtagbloglistblogclass
系统分解
bull 分解结果
ndash 对外模块
ndash 私有模块
m
blog
list tag
setting
account permission
edu
blog
tag listbox
class
tab setting
tab account
tab
系统分解
bull 绘制模块功能规范表
名称 描述
模块UMI m
实现文件 modulelayoutsystemindexhtml
模块构造 wdml_$$ModuleLayoutSystem
模块功能1 提供左右布局容器2 日志管理博客设置切换选中状态同步(组合tab)
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
构建目录
Project
deploy
webroot
publisher
res
src css
html
javascript
module
releaseconf
releasebat
apphtml
打包工具
打包配置
打包指令
静态资源
前端源码
模块实现
系统入口
bull 项目目录
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
系统分解
bull 根据UMI规则格式化依赖关系树
m
blog
list tag
setting
account permission
profile edu
m
blog
list tag
setting
account permission
edu
系统分解
bull 确定可访问模块注册结点
m
blog
list tag
setting
account permission
edu
日志 标签 基本资料
个人经历
权限设置
系统分解
bull 确定布局模块注册结点
m
blog
list tag
setting
account permission
edu
blog
account
setting
m
系统分解
bull 映射模块功能
m
blog
list tag
setting
account permission
edu
m
setting
account
系统分解
bull 模块分解原则模块之间无耦合性
收件箱切换
类别列表
标签列表日志列表
blog
tag listbox
class
blogboxblogtagbloglistblogclass
系统分解
bull 分解结果
ndash 对外模块
ndash 私有模块
m
blog
list tag
setting
account permission
edu
blog
tag listbox
class
tab setting
tab account
tab
系统分解
bull 绘制模块功能规范表
名称 描述
模块UMI m
实现文件 modulelayoutsystemindexhtml
模块构造 wdml_$$ModuleLayoutSystem
模块功能1 提供左右布局容器2 日志管理博客设置切换选中状态同步(组合tab)
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
构建目录
Project
deploy
webroot
publisher
res
src css
html
javascript
module
releaseconf
releasebat
apphtml
打包工具
打包配置
打包指令
静态资源
前端源码
模块实现
系统入口
bull 项目目录
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
系统分解
bull 确定可访问模块注册结点
m
blog
list tag
setting
account permission
edu
日志 标签 基本资料
个人经历
权限设置
系统分解
bull 确定布局模块注册结点
m
blog
list tag
setting
account permission
edu
blog
account
setting
m
系统分解
bull 映射模块功能
m
blog
list tag
setting
account permission
edu
m
setting
account
系统分解
bull 模块分解原则模块之间无耦合性
收件箱切换
类别列表
标签列表日志列表
blog
tag listbox
class
blogboxblogtagbloglistblogclass
系统分解
bull 分解结果
ndash 对外模块
ndash 私有模块
m
blog
list tag
setting
account permission
edu
blog
tag listbox
class
tab setting
tab account
tab
系统分解
bull 绘制模块功能规范表
名称 描述
模块UMI m
实现文件 modulelayoutsystemindexhtml
模块构造 wdml_$$ModuleLayoutSystem
模块功能1 提供左右布局容器2 日志管理博客设置切换选中状态同步(组合tab)
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
构建目录
Project
deploy
webroot
publisher
res
src css
html
javascript
module
releaseconf
releasebat
apphtml
打包工具
打包配置
打包指令
静态资源
前端源码
模块实现
系统入口
bull 项目目录
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
系统分解
bull 确定布局模块注册结点
m
blog
list tag
setting
account permission
edu
blog
account
setting
m
系统分解
bull 映射模块功能
m
blog
list tag
setting
account permission
edu
m
setting
account
系统分解
bull 模块分解原则模块之间无耦合性
收件箱切换
类别列表
标签列表日志列表
blog
tag listbox
class
blogboxblogtagbloglistblogclass
系统分解
bull 分解结果
ndash 对外模块
ndash 私有模块
m
blog
list tag
setting
account permission
edu
blog
tag listbox
class
tab setting
tab account
tab
系统分解
bull 绘制模块功能规范表
名称 描述
模块UMI m
实现文件 modulelayoutsystemindexhtml
模块构造 wdml_$$ModuleLayoutSystem
模块功能1 提供左右布局容器2 日志管理博客设置切换选中状态同步(组合tab)
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
构建目录
Project
deploy
webroot
publisher
res
src css
html
javascript
module
releaseconf
releasebat
apphtml
打包工具
打包配置
打包指令
静态资源
前端源码
模块实现
系统入口
bull 项目目录
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
系统分解
bull 映射模块功能
m
blog
list tag
setting
account permission
edu
m
setting
account
系统分解
bull 模块分解原则模块之间无耦合性
收件箱切换
类别列表
标签列表日志列表
blog
tag listbox
class
blogboxblogtagbloglistblogclass
系统分解
bull 分解结果
ndash 对外模块
ndash 私有模块
m
blog
list tag
setting
account permission
edu
blog
tag listbox
class
tab setting
tab account
tab
系统分解
bull 绘制模块功能规范表
名称 描述
模块UMI m
实现文件 modulelayoutsystemindexhtml
模块构造 wdml_$$ModuleLayoutSystem
模块功能1 提供左右布局容器2 日志管理博客设置切换选中状态同步(组合tab)
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
构建目录
Project
deploy
webroot
publisher
res
src css
html
javascript
module
releaseconf
releasebat
apphtml
打包工具
打包配置
打包指令
静态资源
前端源码
模块实现
系统入口
bull 项目目录
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
系统分解
bull 模块分解原则模块之间无耦合性
收件箱切换
类别列表
标签列表日志列表
blog
tag listbox
class
blogboxblogtagbloglistblogclass
系统分解
bull 分解结果
ndash 对外模块
ndash 私有模块
m
blog
list tag
setting
account permission
edu
blog
tag listbox
class
tab setting
tab account
tab
系统分解
bull 绘制模块功能规范表
名称 描述
模块UMI m
实现文件 modulelayoutsystemindexhtml
模块构造 wdml_$$ModuleLayoutSystem
模块功能1 提供左右布局容器2 日志管理博客设置切换选中状态同步(组合tab)
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
构建目录
Project
deploy
webroot
publisher
res
src css
html
javascript
module
releaseconf
releasebat
apphtml
打包工具
打包配置
打包指令
静态资源
前端源码
模块实现
系统入口
bull 项目目录
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
系统分解
bull 分解结果
ndash 对外模块
ndash 私有模块
m
blog
list tag
setting
account permission
edu
blog
tag listbox
class
tab setting
tab account
tab
系统分解
bull 绘制模块功能规范表
名称 描述
模块UMI m
实现文件 modulelayoutsystemindexhtml
模块构造 wdml_$$ModuleLayoutSystem
模块功能1 提供左右布局容器2 日志管理博客设置切换选中状态同步(组合tab)
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
构建目录
Project
deploy
webroot
publisher
res
src css
html
javascript
module
releaseconf
releasebat
apphtml
打包工具
打包配置
打包指令
静态资源
前端源码
模块实现
系统入口
bull 项目目录
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
系统分解
bull 绘制模块功能规范表
名称 描述
模块UMI m
实现文件 modulelayoutsystemindexhtml
模块构造 wdml_$$ModuleLayoutSystem
模块功能1 提供左右布局容器2 日志管理博客设置切换选中状态同步(组合tab)
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
构建目录
Project
deploy
webroot
publisher
res
src css
html
javascript
module
releaseconf
releasebat
apphtml
打包工具
打包配置
打包指令
静态资源
前端源码
模块实现
系统入口
bull 项目目录
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
构建目录
Project
deploy
webroot
publisher
res
src css
html
javascript
module
releaseconf
releasebat
apphtml
打包工具
打包配置
打包指令
静态资源
前端源码
模块实现
系统入口
bull 项目目录
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
构建目录
Project
deploy
webroot
publisher
res
src css
html
javascript
module
releaseconf
releasebat
apphtml
打包工具
打包配置
打包指令
静态资源
前端源码
模块实现
系统入口
bull 项目目录
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
构建目录
bull 单元目录
unit test
indexhtml
indexjs
testhtml
indexcss
模块测试
模块结构
模块逻辑
模块样式
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
构建目录
bull 模块目录
module tab
layout system
blog
bloglist
setting
settingaccount
blog tab
list
listbox
listtag
tag
setting tab
accounttab
profile
edu
permission
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
模块实现
bull 结构
ndash 将模块相关的静态结构拆分成若干NEJ的模板
lttextarea name=js data-src=jsp0jsjsp1js data-version=20120214gt lttextareagt
js 脚本资源模板css 样式资源模板html 嵌套模板资源
资源地址用data-src指定多个地址用逗号分隔(除html模板)
jscss类型资源模板内容可内联代码data-version指定资源版本信息
lttextarea name=ntp id=mdl-ntp-0gt
lttextareagt
jst JST模板txt 纯文本模板ntp 节点模板
使用id标识标识模板
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
模块实现
bull 结构
ltmeta charset=utf-8gtlttextarea name=txt id=module-id-0gt ltdiv class=w-ltbgt
lta class=itm href=blog data-id=bloggt日志管理ltagt
lta class=itm href=setting data-id=settinggt博客设置ltagt ltdivgtlttextareagtlt-- TEMPLATE --gtlttextarea name=css data-src=indexcssgtlttextareagtlttextarea name=js data-src=indexjsgtlttextareagtlt-- TEMPLATE --gt
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
模块实现
bull 逻辑
ndash 依赖libutildispatchermodulebasejs从
nejut_$$AbstractModule扩展一个项目的模块基
类完成项目中模块特有属性行为的抽象
------------------------------------------
项目模块基类实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([libutildispatchermodulebasejs]function() variable declaration var _ = NEJP _t = _(nejut) _p = _(wdm) _pro if (_p_$$Module) return
项目模块基类对象 class wdm_$$Module extends nejut_$$AbstractModule
param Object 可选配置参数已处理参数列表如下所示 _p_$$Module = NEJC() _pro = _p_$$Module_$extend(_t_$$AbstractModule)
操作 param Object return Void _pro__doSomething = function(_args) TODO )
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
模块实现
bull 逻辑
ndash 从项目的模块基类扩展具体模块并按照模块状态
实现具体模块的业务逻辑
ndash 模块状态
bull 构建
bull 显示
bull 刷新
bull 隐藏
_$$AbstractModule
__doBuild
__onShow
__onHide
__onRefresh
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
模块实现
bull 逻辑
ndash 具体模块根据实际需求完成四个状态对应方法的重
写及模块特有业务逻辑的实现
ndash 模块最后使用neje_$regist接口注册模块到对应的
UMI或者UMI对应的别名
------------------------------------------
项目模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs]function() variable declaration var _ = NEJP _e = _(neje) _m = _(wdm) _p = _(wdml) _pro if (_p_$$ModuleDemo) return
项目模块对象 class wdml_$$ModuleDemo extends wdm_$$Module
param Object 可选配置参数 _p_$$ModuleDemo = NEJC() _pro = _p_$$ModuleDemo_$extend(_m_$$Module)
构建模块主要处理以下业务逻辑
- 构建模块结构
- 缓存后续需要使用的节点
- 初始化需要使用的组件的配置信息 return Void _pro__doBuild = function() this__supDoBuild() TODO
显示模块主要处理以下业务逻辑
- 添加事件
- 分配组件
- 处理输入信息
param Object 输入参数 return Void _pro__onShow = function(_options) this__supOnShow(_options) TODO
刷新模块主要处理以下业务逻辑
- 分配组件分配之前需验证
- 处理输入信息
- 同步状态
- 载入数据 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) TODO
隐藏模块主要处理以下业务逻辑
- 回收事件
- 回收组件
- 尽量保证恢复到构建时的状态 return Void _pro__onHide = function() this__supOnHide() TODO notify dispatcher _e_$regist( umi_or_alias _p_$$ModuleDemo ))
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
模块实现
bull 逻辑
------------------------------------------
日志管理权限设置切换同步模块实现文件 version 10 author genify(caijfcorpneteasecom) ------------------------------------------ define([promodulemodulejs libutiltabtabviewjs]function() variable declaration var _ = NEJP _o = NEJO _e = _(neje) _t = _(nejut) _d = _(wdd) _m = _(wdm) _p = _(wdmb) _pro if (_p_$$ModuleSystemTab) return
日志管理权限设置切换同步模块 class wdm_$$ModuleSystemTab extends nejut_$$AbstractModuleTagList
param Object 可选配置参数已处理参数列表如下所示 _p_$$ModuleSystemTab = NEJC() _pro = _p_$$ModuleSystemTab_$extend(_m_$$Module)
构建模块 return Void _pro__doBuild = function() this__supDoBuild() this__body = _e_$html2node( _e_$getTextTemplate(module-id-0) ) this__tbview = _t_$$TabView_$allocate( list_e_$getChildren(this__body) oncheckthis__doCheckMatchEQ_$bind(this) )
刷新模块
param Object 配置信息 return Void _pro__onRefresh = function(_options) this__supOnRefresh(_options) this__tbview_$match( this__doParseUMIFromOpt(_options) )
验证选中项
param Object 事件信息 return Void _pro__doCheckMatchEQ = function(_event) _eventmatched = _eventtargetindexOf(_eventsource)==0 notify dispatcher _e_$regist(system-tab_p_$$ModuleSystemTab))
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
模块实现
bull 测试
ndash 创建html页面使用模板引入模块实现文件
ndash 模块放至documentmbody指定的容器中
lt-- template box --gtltdiv id=template-box style=displaynonegt lttextarea name=html data-src=indexhtmlgtlttextareagtltdivgt
define([libutildispatchertestjs] function() documentmbody = module-id-0 test module NEJP(neje)_$testByTemplate(template-box) )
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
系统整合
bull 将UMI依赖关系树中需要注册模块的节点同模
块实现文件进行映射
m
blog
list tag
setting
account permission
edu
modulelayoutsystemindexhtml
modulelayoutblogindexhtml
modulelayoutbloglistindexhtml
moduleblogtagindexhtml
modulelayoutsettingindexhtml
modulelayoutsettingaccountindexhtml
modulesettingprofileindexhtml
modulesettingeduindexhtml
modulesettingpermissionindexhtml
blog
tag listbox
class
tab setting
tab account
tab
moduletabindexhtml
modulebloglistboxindexhtml
modulebloglisttagindexhtml
modulebloglistclassindexhtml
modulebloglistindexhtml
modulesettingtabindexhtml
modulesettingaccounttabindexhtml
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
系统整合
bull 应用入口实现
ndash 使用neje_$startup启动应用
ndash 启动支持输入规则和模块配置
neje_$startup(
规则配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule rules rewrite
重写规则配置 title
标题配置 alias
别名配置
建议模块实现文件中的注册采用这里配置的别名
模块配置 httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist modules
模块UMI对应实现文件的映射表
同时完成模块的组合 )
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
系统整合
bull 启动配置
ndash 规则配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$rule
ndash 模块配置httpnejneteasecomdocumentclassnejut_$$Dispatcherhtml|_$regist
rules rewrite 404mbloglist mbloglistmblog msettingaccountmsetting title
mblogtag日志标签
mbloglist日志列表
msettingpermission权限管理
msettingaccount基本资料
msettingaccountedu教育经历 alias system-tabtab blog-tabblogtab blog-list-boxblogbox blog-list-tagblogtag blog-list-classblogclass blog-listbloglist setting-tabsettingtab setting-account-tabsettingaccounttab layout-systemm layout-blogmblog layout-blog-listmbloglist layout-settingmsetting layout-setting-accountmsettingaccount blog-tagmblogtag setting-edumsettingaccountedu setting-profilemsettingaccount setting-permissionmsettingpermission
modules tabmoduletabindexhtml blogtabmoduleblogtabindexhtml blogboxmodulebloglistboxindexhtml blogtagmodulebloglisttagindexhtml blogclassmodulebloglistclassindexhtml bloglistmodulebloglistindexhtml settingtabmodulesettingtabindexhtml settingaccounttabmodulesettingaccounttabindexhtml m modulemodulelayoutsystemindexhtml composite tabtab mblog modulemodulelayoutblogindexhtml composite tabblogtab mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass mblogtagmoduleblogtagindexhtml msetting modulemodulelayoutsettingindexhtml composite tabsettingtab msettingaccount modulemodulelayoutsettingaccountindexhtml composite tabsettingaccounttab msettingaccountmodulesettingprofileindexhtml msettingaccountedumodulesettingeduindexhtml msettingpermissionmodulesettingpermissionindexhtml
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
系统整合
bull 模块组合
ndash 模块通过__export属性开放组合模块的容器
_pro__doBuild = function() this__body = _e_$html2node( _e_$getTextTemplate(module-id-l2) ) 0 - box select 1 - class list box 2 - tag list box 3 - sub module box var _list = _e_$getByClassName(this__bodyj-flag) this__export = box_list[0] clazz_list[1] tag_list[2] list_list[3] parent_list[3]
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
系统整合
bull 模块组合
ndash 通过composite配置模块组合
mbloglist modulemodulelayoutbloglistindexhtml composite boxblogbox tagblogtag listbloglist clazzblogclass
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
系统整合
bull 模块组合
ndash composite
composite onshow
模块onshow时组合
组合的模块在模块onrefresh时不会刷新 onrefresh
模块onshow时组合
组合的模块在模块onrefresh时也同时会刷新
这里配置的组合模块等价于onrefresh中配置的模块
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
系统整合
bull 完整入口代码
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
内容
bull 需求说明
bull 系统分解
bull 构建目录
bull 模块实现
bull 系统整合
bull 打包发布
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
打包发布
bull 打包环境
ndash 安装NodeJS环境
ndash 获取NEJPublisher打包工具
ndash 认真阅读打包工具使用手册manualdocx
ndash 修改打包配置文件(配置参数说明参阅使用手册)
ndash 执行打包命令
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
打包发布
bull 打包配置
publisher
releaseconf
releasebat
打包配置文件
times 每行第一个非空字符为 则表示该行为注释
times 配置参数使用 KEY = VALUE 格式
times 配置参数为路径的如果是相对路径则必须以 开始
times 配置参数中如无特殊说明使用的相对路径均相对于DIR_WEBROOT的路径
times 配置参数名称忽略大小写即cfg_dir_webroot等价于CFG_DIR_WEBROOT
路径相关配置
WEB根路径必须配置如果是相对路径则相对于当前配置文件路径(即conf文件所在目录)DIR_WEBROOT = DWorkspacetestnejproject-gbk
项目HTML文件根路径默认为DIR_WEBROOT配置信息DIR_SOURCE = srchtml
打包输出路径默认为DIR_WEBROOT配置信息DIR_OUTPUT = pub
静态文件输出目录默认为DIR_OUTPUT配置信息DIR_OUTPUT_STATIC = s
项目服务器端模板文件根路径
服务器端模板文件确保页面所需的CSSJS文件的引用均出现在模板文件中DIR_SOURCE_TP = template
项目服务器端模板输出路径默认为DIR_SOURCE_TP配置信息DIR_OUTPUT_TP = tpl
静态资源路径默认为WEB根路径下的res目录DIR_STATIC = res
node ~dp0publisherreleasesrcreleasejs -c=~dp0releaseconf
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
打包发布
bull 页面添加打包指令
ndash STYLE打包后样式插入位置
ndash VERSION模块版本配置输出位置
ndash DEFINE打包后脚本插入位置
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
打包发布
bull 模块指令
ndash TEMPLATE
ndash MODULE
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
打包发布
bull TEMPLATE ltdiv id=template-box style=displaynonegt lt-- TEMPLATE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- TEMPLATE --gt ltdivgt
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You
打包发布
bull MODULE ltdiv id=template-box style=displaynonegt lt-- MODULE --gt lttextarea name=html data-src=moduletabindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistboxindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglisttagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistclassindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsystemindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutblogindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutbloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingindexhtmlgtlttextareagt lttextarea name=html data-src=modulelayoutsettingaccountindexhtmlgtlttextareagt lttextarea name=html data-src=moduleblogtagindexhtmlgtlttextareagt lttextarea name=html data-src=modulebloglistindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingtabindexhtmlgtlttextareagt lttextarea name=html data-src=modulesettingaccounttabindexhtmlgtlttextareagt lt-- MODULE --gt ltdivgt
QampA
Thank You