diff --git a/notes/1-Oak-Cli.md b/notes/1-Oak-Cli.md new file mode 100644 index 0000000..6043b8b --- /dev/null +++ b/notes/1-Oak-Cli.md @@ -0,0 +1,53 @@ +# Oak-cli + +## 注意 + +> 这只是一个命令行工具,其核心还是依赖于其他包,如oak-domain + +## 命令行参数 + +- 路径:src/index.ts + +- -v + + - 显示版本信息,来自package.json + +- make:domain + + - 调用异步方法make + - 调用script目录下的make-app-domain.js脚本 + - analyzeEntities + - 这里调用这个方法,是为了处理oak-domain下面的entity + - 分析entity信息,来自oak-domain/lib/compiler/schemalBuilder + - 分析项目依赖analyzeDepedency + - 这里通过分析依赖,获取到了全部的`通过这个框架搭建的依赖项目(generinal businiess)`的模块目录,并返回一个包名数组,为了下面再次解析entity + - 来自oak-domain/lib/compiler/dependencyBuilder + - 再次analyzeEntities,这次是分析`当前开发项目`的entity信息 + - 调用removeSync方法删除项目目录中建立的oak-app-domain目录 + - buildSchema + - 调用这个方法重建oak-app-domain目录 + - 这个方法来自oak-domain/lib/compiler/schemalBuilder + +- make:locale + + - 调用异步方法make + + - 调用scripts/make-locale.js脚本 + + - 调用oak-domain/lib/compiler/localeBuilder下的LocaleBuilder类构造函数,传入false表示不不作为lib进行编译 + + > 什么时候作为lib编译?是什么意思? + + - 得到builder对象,执行build命令 + + - 从进程参数中取得watch(const watch *=* process.argv[2];) + - 两次取反(表示有东西就为true,不管输入什么)后传入build命令,如果为false表示不对目录进行监视,若为true则对目录进行实时监控 + +- make:dependency + + - 调用异步方法make + - 调用scripts/make-dependency.js脚本 + - 调用oak-domain/lib/compiler/dependencyBuilder的默认方法,传入`watch *=* process.argv[2]` + - `本函数用于构建src/initialize.dev, src/initialize.prod, src/initializeFeatures, src/context/FrontendContext, src/contextBackendContext` + - +