全部产品

EggJS应用迁移方案

更新时间:2020-09-11 23:01:34

方案一:基于 MidwayServerless

创建应用

  • 登录阿里云Serverless云开发平台,进入应用列表,点击「创建新应用」,选择「技术场景」,勾选「WEB」,在「解决方案」中,选择「EggJS应用迁移方案」,点击下一步,按照提示完成应用的创建

  • 应用创建完成后,等待代码仓库完成初始化,代码仓库初始化完成后,可以看到「开发部署」入口,点击打开 CloudIDE

上传文件

  • 将存量 EggJS 应用直接拖拽到 CloudIDE 左侧文件列表的根目录

添加依赖

  • 在 package.json 中,添加开发依赖

    1. {
    2. "name": "xxxxxx",
    3. "version": "xxxx",
    4. .....
    5. "devDependencies": {
    6. "@midwayjs/faas-cli": "*"
    7. }
    8. }
  • 如果使用了 ts ,可以使用我们提供的发布钩子,在发布时自动执行编译,在 package.json 配置如下

    1. {
    2. "name": "xxxxxx",
    3. "version": "xxxx",
    4. .....
    5. "midway-integration": {
    6. "lifecycle": {
    7. "before:package:cleanup": "npm run tsc"
    8. }
    9. }
    10. }

    如果你的应用配置的 ts 编译命令不是 tsc ,需要把此处的 tsc 替换成实际的 ts 编译命令

云端开发环境调试

  • 在 CloudIDE 的「终端」安装 npm 依赖
    1. npm i
  • 依赖安装成功后,在 CloudIDE 的「终端」,执行
    1. npm run dev
  • 成功执行命令后,点击 CloudIDE 底部的「预览」,输入 7001 把端口映射出去,映射成功后会在 CloudIDE 右下角弹出 “端口 7001 映射成功,是否立即访问?” ,点击「访问」,就可以在浏览器中打开应用进行调试了
  • 如果打开后看到 404 的提示,可能是因为服务还没有启动,刷新重试,直到看到正常的输出

部署

  • 结束调试模式
  • 点击 CloudIDE 侧边栏的「WB」部署插件,选择要部署的环境,点击「部署」,等待部署完成即可
  • 默认打包 app/ 和 config/ 两个目录,如果你的应用需要将其他目录也一起打包,需要在 f.yml 中添加如下配置,比如 util 目录也要打包:
  1. package:
  2. include:
  3. - util

方案二:基于 NodeJS 存量应用迁移方案

创建应用

  • 登录阿里云Serverless云开发平台,进入应用列表,点击「创建新应用」,选择「技术场景」,勾选「WEB」,在「解决方案」中,选择「NodeJS存量应用迁移方案」,点击下一步,按照提示完成应用的创建

  • 应用创建完成后,等待代码仓库完成初始化,代码仓库初始化完成后,可以看到「开发部署」入口,点击打开 CloudIDE

上传文件

  • 将存量 EggJS 应用直接拖拽到 CloudIDE 左侧文件列表的根目录上传文件

添加依赖

  • 在 package.json 中,添加开发依赖添加依赖

安装依赖

  • 在 CloudIDE 的「终端」安装 npm 依赖
    1. npm i

配置应用入口

  • 将 serverless_config_egg.js 重命名为 serverless_config.js
  • 打开重命名后的 serverless_config.js,配置框架类型和应用入口文件配置应用入口

配置 Egg 应用的 run-dir/logger-dir 目录

  • 打开 Egg 应用 config 目录的 config.default.ts 文件,增加以下配置
    1. //将 run目录 和 日志目录 配置到 /tmp 临时目录,必须!
    2. config.rundir = '/tmp';
    3. config.logger = {
    4. dir: '/tmp',
    5. };
    目录配置

测试

  • 方案1:先在 CloudIDE 「终端」执行 npm run tsc,执行结束后,再点击 CloudIDE 左侧「WB」插件,打开「测试」面板,勾选「预览模式」,点击「测试」即可查看效果测试1

  • 方案2:在 CloudIDE 「终端」执行 npm run dev,应用服务启动后,按照提示,点击 CloudIDE 底部「预览」,输入应用服务的端口号,然后访问即可查看效果测试2测试2效果

部署

  • 测试无误需要部署的话,点击 CloudIDE 左侧「WB」插件,打开「部署」面板,选择部署环境,点击部署,部署成功后即可通过测试域名查看线上效果