本地开发调试Egg应用程序时需使用egg-bin
模块
egg-bin
是一个为便捷开发者在本地开发、调试、测试Egg应用程序的命令行开发工具,它集成了本地调试、单元测试、代码覆盖率等功能。
egg-bin
是基于common-bin
开发的,common-bin
是一个封装的CLI开发工具(抽象命令工具),封装了诸如co
、yargs
模块并提供对async/generator
特性的支持,内置helper
、subcommand
等实用工具。凭借这些封装的工具以及对CLI文件结构的约定,可以大大简化Node工具的开发流程。
安装检测
检查package.json
的devDependencies
是否已经引入了egg-bin
模块
$ cat package.json
"egg-bin": "^4.11.0",
若未引入则需使用npm
安装egg-bin
模块
$ npm i -S egg-bin
由于egg-bin
只用于本地环境,可在插件配置中设置产生环境不下载。
$ vim config/plugin.js
module.exports = {
dev:{enable:true, package:"egg-bin"}
};
自动重启实时生效
使用egg-bin
模块可在本地启动应用开发时,修改代码后无需保存自动重启实时生效,但实际上并没生效,不知为何!
启动应用
$ vim package.json
{
"scripts":{
"dev"':"egg-bin dev"
}
}
$ npm run dev
egg-bin dev
启动命令实际运行的是
$ node --inspect-brk=6666 ./node_modules/egg-bin/bin/egg-bin.js dev
问题是配置运行后代码修改后并未得到更新,仍需要重启服务才能更新。使用的是VSCode,怎么办?
指定端口
"dev": "egg-bin dev --port 7001"
守护进程
此时若不需要将日志输出打印到控制台上则可以为命令添加--daemon
以守护进程方式允许
"dev": "egg-bin dev --daemon"
配置文件
此时可以直接使用npm run dev
命令本地启动应用,需注意的这里本地启动所使用的环境变量是env:local
,因此读取的环境配置是config.local.js
。