Thanks to visit codestin.com
Credit goes to github.com

Skip to content

egg-scripts 部署脚本 #241

@popomore

Description

@popomore

功能

  • 构建
    • 支持 nodeinstall
    • 支持语言层编译,如 typescript, babel
    • 自定义构建,如静态文件编译
  • 启动

构建

环境依赖 cnpm,cnpm 会根据配置自动安装 node 到应用包中(需要实现)。

应用添加 install-node 配置 node 版本,并添加 egg-scripts 依赖

{
  "dependencies": {
    "egg-scripts": "*"
  },
  "engines": {
    "install-node": "6.9.1"
  }
}

构建顺序

  1. 下载应用代码
  2. 在应用代码执行 cnpm install --production
  3. 执行 egg-scripts build
    1. 预编译处理(ts,babel 等)
    2. 调用应用的 scripts.build(一般常用于处理静态文件构建)
    3. 修改 scripts.start/scripts.stop 指向 egg-scripts

启动

egg 构建出的应用包没有任何依赖,可直接部署

  1. 设置环境变量 PATH={app_root}/node_modules/.bin:$PATH
  2. 启动 npm startegg-scripts start

扩展

如果框架想提供部署功能,那么可以在框架层依赖 egg-scripts,这样应用就不需要添加了。但是层级比较深,可以在 postinstall 修改 ./node_modules/.bin/egg-scripts.

egg-scritps 主要提供 build 扩展,可以继承 egg-scritps 处理自定义逻辑。

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions