midway-bin

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

安装

默认脚手架已经自带。

  1. 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 文档midway-bin - 图1

build 命令

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

  1. midway-bin build

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

  1. midway-bin build -c

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

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

  1. {
  2. "midway-bin-build": {
  3. "include": [
  4. "app/public",
  5. "app/view",
  6. "lib/platform/aone/api.json",
  7. "lib/*.json",
  8. "lib/*.text",
  9. ["pattern/**", "!pattern/**/*.js"]
  10. ]
  11. }
  12. }

TIP

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

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

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

clean 命令

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

  1. midway-bin clean

清理的内容包括:

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

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

  1. {
  2. "midway-bin-clean": [
  3. "src/app/public",
  4. "resource/temp"
  5. ]
  6. }

TIP

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

doc 命令

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

  1. midway-bin doc

使用的命令参数midway-bin - 图3和 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.

TIP

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