Midway mono repository
以下所有命令行操作都在 git-bash
窗口中执行
创建新项目
克隆新项目仓库
git clone git@git.foo.com:<group>/<project> && cd <project>
# 比如
git clone git@git.foo.com:foo/uc && cd uc
初始化仓库
# git (GitHub not support)
git archive --remote=git@github.com:waitingsong/midway-mono-base.git HEAD package.json | tar -x > package.json
# https
curl -kL https://github.com/waitingsong/midway-mono-base/raw/main/package.json > package.json
git add package.json
git commit -m "chore: initialize"
npm run bp:add
git fetch bp -v && git merge bp/main --allow-unrelated-histories -m "Merge remote-tracking branch 'bp/main'"
# 手动指定项目名(仅作为代码库标识用途),包名可使用下划线分隔(不能使用减号-)
sh init-project.sh @scope/foo
# 自动使用目录名作为项目名(仅作为代码库标识用途)
sh init-project.sh
# 初始化依赖
npm run bootstrap
lerna list
根据模板选择初始化子包
创建目录
# TypeScript 类型子包(前后端可以共用)
npm run add:types @scope/types
# 服务子包(生成完毕之后需要手工替换 src/ 源码中对于 `@scope/docs` 模块的引用)
npm run add:svc @scope/svc
更新项目配置
- 更新仓库顶级
package.json
文件description
等字段 - 修改新建各子包配置文件
package.json
- 更新本文档 Packages 表格的子包信息
Packages
Project Documents
NPM scope: @scope
Package | Version |
---|---|
docs |
文档 |
service |
服务 |
Compile
Run under root folder
npm run build
# specify scope
npm run build @scope/demo-docs
# specify scopes
npm run build @scope/demo-docs @scope/demo-serivce
Add dependencies
lerna add pkg-name --scope=@scope/demo-service
Update package
npm run bootstrap
Add package
# TypeScript 类型子包(前后端可以共用)
npm run add:types @scope/types
# 服务子包(生成完毕之后需要手工替换 src/ 源码中对于 `@scope/types` 模块的引用)
npm run add:svc @ishop_pos/svc
Test
- Use
npm run lint
to check code style. - Use
npm run test
to run unit test.
Clan or Purge
# clean build dist, cache and build
npm run clean
# clean and remove all node_modules, install deps and build
npm run purge
Note
- Default publish registry is
NPM
, configurated in filelerna.json
- Any commands above (such as
npm run build
) running inGit-Bash
under Windows OS - Default response MIME type is
application/json
viaconfig.middleware
andresponse-mime.middleware.ts