内置命令

一个典型的命令配置。

{
    "scripts": {
        "dev": "gez dev",
        "build": "npm run build:ssr && npm run build:dts && npm run release",
        "build:ssr": "gez build",
        "build:dts": "tsc --noEmit --outDir dist/server/src",
        "release": "gez release",
        "preview": "gez preview",
        "start": "gez start",
        "postinstall": "gez install"
    }
}
TIP

你需要手动配置 tsconfig.json 文件,否则执行 build:dts 命令会报错。

gez dev

本地开发时启动。

TIP

如果链接的服务是一个本地的目录,你也可以把该服务跑起来快速的开发调试。

export default {
    name: 'ssr-module-auth',
    modules: {
        imports: {
            'ssr-core': 'root:../ssr-core/dist'
        }
    }
} satisfies GezOptions;

gez build

构建生产代码

TIP

有三个产物,分别是 client、server、node。

gez release

当前服务如果有对外导出模块时使用。

  • 执行 gez build 命令,构建生产产物。
  • 执行 npm run build:dts 命令,将类型输出到 dist/server/src 目录,本地开发时,可以得到类型提示。
  • 执行 gez release 命令,将 dist/clientdist/server 目录生成 zip 压缩文件,放到 dist/client/versions 目录中。
  • dist 目录的代码,部署到生产环境中。
  • 其它服务调用
    • entry.node.ts 配置
      export default {
          name: 'ssr-module-auth',
          modules: {
              imports: {
                  'ssr-core': ['root:../ssr-core/dist', 'https://<hostname>/ssr-core/versions/latest.json']
              }
          }
      } satisfies GezOptions;
    • 执行 npm install 命令,触发 postinstall 钩子,再执行 gez install 命令下载
TIP

可以封装一个 build 命令,将多个命令封装到一起。

gez preview

等同于执行 gez build && gez start

gez start

运行生产环境代码

TIP

开发环境中,所依赖的外部服务代码变更,总是会获得热更新,但是在生产环境中是没有热更新的。

如果依赖的服务发布更新了,你需要手动重启一下服务,或者编写一个脚本,监听版本发布来重启服务。

gez install

安装远程依赖到本地

TIP

postinstall 钩子中,执行 npm install --production 安装生产依赖无效。