首页 > 解决方案 > Heroku git push 错误没有与节点匹配的版本:6.4.1

问题描述

我正在尝试将我的提交推送到 heroku,我的 npm 和节点版本是根据需要指定的。但我仍然收到错误消息“与远程不对应:Node.js 的任何已发布版本。”。

当我们检查错误详细信息时,我们看到它忽略了我的版本,并尝试为节点 6.4.1 而不是 npm 设置版本。

完整的 git 错误消息:

>git push heroku master
Counting objects: 417, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (194/194), done.
Writing objects: 100% (417/417), 116.10 KiB | 12.90 MiB/s, done.
Total 417 (delta 224), reused 399 (delta 215)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Node.js app detected
remote:
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):  6.4.1
remote:        engines.npm (package.json):   unspecified (use default)
remote:
remote:        Resolving node version 6.4.1...
remote:        Could not find Node version corresponding to version requirement: 6.4.1
remote:
remote: -----> Build failed
remote:
remote:  !     No matching version found for Node: 6.4.1
remote:
remote:        Heroku supports the latest Stable version of Node.js as well as all
remote:        active LTS (Long-Term-Support) versions, however you have specified
remote:        a version in package.json (6.4.1) that does not correspond to
remote:        any published version of Node.js.
remote:
remote:        You should always specify a Node.js version that matches the runtime
remote:        you’re developing and testing with. To find your version locally:
remote:
remote:        $ node --version
remote:        v6.11.1
remote:
remote:        Use the engines section of your package.json to specify the version of
remote:        Node.js to use on Heroku. Drop the ‘v’ to save only the version number:
remote:
remote:        "engines": {
remote:          "node": "6.11.1"
remote:        }
remote:
remote:        https://kb.heroku.com/why-is-my-node-js-build-failing-because-of-no-matching-node-versions
remote:
remote:  !     Push rejected, failed to compile Node.js app.
remote:
remote:  !     Push failed
remote: Verifying deploy...
remote:
remote: !       Push rejected to app.
remote:
To https://git.heroku.com/app.git
 ! [remote rejected] master -> master (pre-receive hook declined)

packpage.json 引擎节点:

"engines": {
    "node": "10.14.1",
    "npm": "6.4.1"
  }

当我在我的机器上运行版本控制命令时:

node --version
v10.14.1

npm -version
6.4.1

标签: node.jsgitherokunpm

解决方案


我已经想通了。有些文件没有添加到 git 中。

如果有人有同样的错误,如果你还没有添加你的应用程序的所有目录。

git add .

或者你只能添加 packpage.json

git add packpage.json

推荐阅读