如何在Heroku中指定节点版本

时间:2019-04-04 08:07:29

标签: node.js heroku deployment

我有一个要在Heroku上托管的Node项目。我在package.json(位于根目录中)中明确定义了node和npm版本,如下所示:

{
 "name": "*********",
 "version": "1.0.0",
 "description": "**********",
 "engines": {
  "node": "8.x",
  "npm": "6.x"
 },
 "private": true,
 .....
 }

但是,当我尝试将应用程序推送到heroku时。它仍然不读取节点和npm版本。

remote: -----> Creating runtime environment
remote:
remote:        NPM_CONFIG_LOGLEVEL=error
remote:        NODE_ENV=production
remote:        NODE_MODULES_CACHE=true
remote:        NODE_VERBOSE=false
remote:
remote: -----> Installing binaries
remote:        engines.node (package.json):  unspecified
remote:        engines.npm (package.json):   unspecified (use 
default)
remote:        Resolving node version 10.x...
remote:        Downloading and installing node 10.15.3...
remote:        Using default npm version: 6.4.1

我的案子有什么解决办法吗?还是谢谢你

1 个答案:

答案 0 :(得分:0)

这已正确记录在Heroku Dev Center中。

如您所见,构建日志显示未指定节点版本。

  

engines.node(package.json):未指定

您的package.json是正确的,但是您可能未将应用程序设置为使用heroku/nodejs buildpack。

使用它来检查正在使用的buildpack。

$ heroku buildpacks
=== issuetriage Buildpack URLs
1. heroku/nodejs

$ heroku buildpacks:add heroku/nodejs
Buildpack added. Next release on issuetriage will use heroku/nodejs.
Run git push heroku master to create a new release using this buildpack.

如果发布完整的构建日志,则可能发现更多内容。