gpt4 book ai didi

node.js - 在 Heroku review-app 部署后步骤中使用 NodeJS 开发依赖项

转载 作者:行者123 更新时间:2023-12-05 06:19:01 27 4
gpt4 key购买 nike

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

在我的存储库中,我定义了一些播种器脚本来快速启动和运行测试数据库。运行 yarn seed(或 npm run seed)将用测试数据填充数据库。这在开发过程中非常有效,也非常适合审查应用程序。我想在Heroku评论应用程序的postdeploy钩子(Hook)中执行seeder命令,可以通过在app的environment.review部分指定它来完成.json 文件。像这样:

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

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

我也不认为在常规构建步骤中“编译” typescript 是最好的主意。此播种器脚本仅用于开发(和审查应用程序)。此外,我不确定这是否会解决缺少依赖项(如 faker)的问题。

人们会怎么做呢?我缺少任何技巧吗?

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

最佳答案

Heroku docs指示当 NODE_ENV 变量包含除 "production" 之外的任何内容时,devDependencies 将不会在构建步骤后被删除。

为确保这仅发生在 Heroku 评论应用程序中,您可以在 app.json 文件的 environments.review 部分下设置 NODE_ENV 变量。以下配置应该可以解决问题:

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

关于node.js - 在 Heroku review-app 部署后步骤中使用 NodeJS 开发依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61007144/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com