跳到主要内容
版本:1.0.0

midway 工具集

midway-bin

midway-bin 通过继承了 egg-bin,扩展一些跟 ts 相关的命令。

安装

默认脚手架已经自带。

npm install midway-bin --save-dev

常用命令

包括 egg-bin 自带的:

  • midway-bin test 测试命令, ts 使用时需要带上 --ts
  • midway-bin cov 生成覆盖率命令, ts 使用时需要带上 --ts
  • midway-bin debug 调试命令, ts 使用时需要带上 --ts
  • midway-bin autod
  • midway-bin dev 本地开发命令, ts 使用时需要带上 --ts
  • midway-bin pkgfiles

这些命令都没有特别处理,参数和 egg-bin 相同,具体使用可以查看 egg-bin 文档

build 命令

我们增加了一个 build 命令用于增强构建 typescript 项目。

midway-bin build

额外增加了一个 -c 参数用于支持打包前清理 /dist 目录。

midway-bin build -c

由于 typescript 编译无法拷贝非 *.ts 文件,我们特定在对 build 命令做了增强。

在执行 midway-bin build 命令中,会自动调用 package.jsonmidway-bin-build 段落,配置如下:

{
"midway-bin-build": {
"include": [
"app/public",
"app/view",
"lib/platform/aone/api.json",
"lib/*.json",
"lib/*.text",
["pattern/**", "!pattern/**/*.js"]
]
}
}
信息

这里的路径相对于 src 目录。

你可以在其中使用相对路径或者通配符,乃至任意符合 glob 语法 的 pattern 数组。

这样在打包时会自动将相应的目录或者文件从 src 目录拷贝到对应的 dist 目录中。

clean 命令

我们增加了一个 clean 命令用于清理一些临时文件。

midway-bin clean

清理的内容包括:

  • logs 目录
  • run 目录
  • .nodejs-cache 目录

同时和 build 命令类似,你可以在 package.jsonmidway-bin-clean 段落增加配置,用于清理自己的目录和文件。

{
"midway-bin-clean": ["src/app/public", "resource/temp"]
}
信息

这里的路径相对于应用的根目录。

doc 命令

midway-bin doc 命令用于通过 typedoc 生成文档,比如 midway 的 api 就是通过此命令生成的。

midway-bin doc

使用的命令参数和 typedoc 一致。

直接可使用的参数包括以下这些,有些已经指定了默认值。

  • --options [typedoc.js] Specify a js option file that should be loaded.
  • --out -o [outPath] Specifies the location the documentation should be written to.
  • --mode -m default value is file, Specifies the output mode the project is used to be compiled with.
  • --exclude Exclude files by the given pattern when a path is provided as source.
  • --theme default value is default Specify the path to the theme that should be used.
  • --excludeExternals default value is true Prevent externally resolved TypeScript files from being documented.
  • --ignoreCompilerErrors default value is true Generates documentation, even if the project does not TypeScript compile.
  • --hideGenerator default value is true Do not print the TypeDoc link at the end of the page.
信息

如果指定了 --options 参数,那么其他的参数都会失效,请都在 --options 参数指定的文件中进行处理。

midway-init

提供了基础的 midway 应用脚手架,后续会不断增加其他模板。

npm install -g midway-init
midway-init

可以通过内建的命令创建脚手架

midway-init -h                                          // 帮助文档
midway-init --dir my_project // 在当前目录下的 my_project 子目录创建脚手架
midway-init --type midway-ts // 从内置脚手架类型 midway-ts 创建目录
midway-init --template ../custom_boilerplate // 从本地的特地目录创建脚手架
midway-init --package midway-boilerplate-typescript // 从 npm 包创建脚手架
midway-init --registry china/npm/registry.cnpmjs.org // 从不同的 registry 获取 npm 包,和 --package 合用

tslint-midway-contrib

midway 对 Typescript 应用提供了简单的 tslint 规则包,只需要在 tslint.json 中做简单的继承,如果有其他的需求

// package.json
"devDependencies": {
"tslint-midway-contrib": "1",
}
// tslint.json
{
"extends": ["tslint-midway-contrib"]
}