在Heroku Review-App部署后步骤中使用NodeJS开发依赖项

杰西·范德·普吕伊姆

我在Heroku上托管了一个(演示)应用程序。我已启用Heroku的“审阅应用程序”功能来启动新实例以进行拉取请求审阅。这些评论实例都通过Heroku的附加系统为其提供了一个新的MongoDB(在mLab上)。这很好。

在我的存储库中,我定义了一些种子脚本,以快速启动并运行测试数据库。运行yarn seed(或npm run seed)将用测试数据填充数据库。这在开发过程中效果很好,并且对于评论应用程序也是完美的。我想postdeploy在Heroku评论应用挂钩中执行seeder命令,可以通过environment.reviewapp.json文件部分下指定它来完成像这样:

{
  "name": "...",
  "addons": [
    "mongolab:sandbox"
  ],
  "environments": {
    "review": {
      "addons": [
        "mongolab"
      ],
      "scripts": {
        "postdeploy": "npm run seed"
      }
    }
  }
}

问题是,种子脚本依赖于某些仅开发的依赖项(fakerts-node[这是一个TypeScript项目]和mongo-seeding)来执行。这些依赖项在postdeployHeroku应用程序阶段不可用

我也不认为在常规构建步骤中“编译”打字稿是最好的主意。该种子脚本仅用于开发(和审阅应用程序)中。此外,我不确定是否可以解决缺少依赖项的问题faker

怎么会这样呢?我缺少任何技巧吗?

我是否可以跳过Heroku主动删除开发依赖项的步骤?但仅适用于评论应用程序吗?甚至更好的是,我是否可以仅将我需要的两个依赖项“排除”,并且仅用于审查应用程序?

杰西·范德·普吕伊姆

Heroku的文档表明,当NODE_ENV变量包含什么,但"production",则devDependencies不会生成工序后除去了。

为了确保仅适用于Heroku评论应用,您可以在app.json文件NODE_ENVenvironments.review部分设置变量以下配置应该可以解决问题:

{
  "name": "...",
  "addons": [
    "mongolab"
  ],
  "environments": {
    "review": {
      "addons": [
        "mongolab:sandbox"
      ],
      "env": {
        "NODE_ENV": "development"
      },
      "scripts": {
        "postdeploy": "npm run seed"
      }
    }
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章