切换节点版本以在 heroku 上构建

Posted

技术标签:

【中文标题】切换节点版本以在 heroku 上构建【英文标题】:Switch node version for building on heroku 【发布时间】:2022-01-22 12:08:27 【问题描述】:

在 Heroku 上构建我的 rails 应用程序时,我正在尝试获取节点版本到 14.18.2。我不确定如何更改此设置,因为我已将 "engines": "node": "14.18.2" 在我的 package.json 文件中。通过这样做,它可以完美地构建在我的本地/存储库上,但是,当部署到 heroku 并使用 heroku 构建时,它会给我这个错误

[1/5] Validating package.json...
       error @: The engine "node" is incompatible with this module. Expected version "14.18.2". Got "16.13.1"
       error Found incompatible module.

如何更改它以使用我需要的版本进行构建?

这是我的构建包

1. https://github.com/gaffneyc/heroku-buildpack-jemalloc.git
2. heroku/metrics
3. heroku/ruby

感谢您的帮助!

【问题讨论】:

【参考方案1】:

为什么要添加“heroku/metrics” buildpack,它应该是“heroku/nodejs”,然后将更改推送到主分支。 并确保以第一顺序制作heroku/nodejs。 所以当你运行时

heroku buildpacks -a your_app_name

    heroku/nodejs heroku/红宝石

检查这个https://devcenter.heroku.com/articles/ruby-support#installed-binaries

要查看 heroku 上的应用程序,您应该在 app.json 文件中添加 buildpacks

"buildpacks": [
        
            "url": "heroku/nodejs"
        ,
        
            "url": "heroku/ruby"
        
    ]

这也很有用。 Heroku fails during build with Error: Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime (93)

【讨论】:

以上是关于切换节点版本以在 heroku 上构建的主要内容,如果未能解决你的问题,请参考以下文章

构建应用程序以在单个 UITableView 中显示两个列表的最佳方法是啥(在数据集之间切换)

nvm 使用不切换节点版本

从 AWS 切换到 Heroku 时出错?

附加代码以在播放歌曲时切换图像

无法在 heroku 上构建和部署 Rails 6.0.4.1 应用程序 - 引发 gyp verb cli 错误

如何切换节点版本以安装较新的版本(v14.15.4)