Dawn 取「黎明、破晓」之意,原为「阿里云·业务运营团队」内部的前端构建和工程化工具,现已完全开源。它通过 pipeline
和 middleware
将开发过程抽象为相对固定的阶段和有限的操作,简化并统一了开发人员的日常构建与开发相关的工作。
入口
开发过程中,经常会用到如下一些命令,dn
也可以替换为dawn
。
dn init
dn dev
dn build
在dawn
项目的package.json
中,可以看到如下一些配置信息。属性bin
则是执行命令的入口。
{
"name": "dawn",
"version": "1.9.0",
"description": "dawn cli",
"main": "./lib/index.js",
"bin": {
"dn": "./bin/cli.js",
"dawn": "./bin/cli.js"
}
}
cli和cli-core
在cli.js
中执行require('./cli-core').ready();
在cli-core.js
中,使用cmdline
库将涉及的命令和执行动作action
进行初始化配置。当触发某个命令,对应的action
回调函数执行,就会初始化Context
,调用context.run()
方法执行后续一系列任务。
cmdline
.root.command([
'dev', 'add', 'test', 'build', 'publish', 'start', 'run',
'd', 'a', 't', 'b', 'p', 's', 'r'
])// 配置与action有关的命令
.option