无法推送到Heroku:找不到模块"node-linux-x64/package.json" [英] Unable to push to Heroku: Cannot find module 'node-linux-x64/package.json'

查看:110
本文介绍了无法推送到Heroku:找不到模块"node-linux-x64/package.json"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我真的很困,非常感谢您的帮助.之前曾在这里询问此问题.推送到Heroku时出错:尽管尝试了所有建议,但找不到模块'node-linux-x64/package.json',我仍然无法解决此问题.

I'm really stuck and would really appreciate some help. This question was asked previously here Error while pushing to Heroku: Cannot find module 'node-linux-x64/package.json' however, despite trying all the suggestions I was still unable to resolve this problem.

就像最初发布问题的个人一样,我正在尝试将完整的Javascript应用程序推送到Heroku.

Just like the individual before who posted the problem initially, I am trying to push a full stack Javascript app to Heroku.

我已经重新安装了所有依赖项,甚至降级了节点和npm.

I've re-installed all my dependencies and even downgraded my node and npm.

这个问题特别令人困惑,因为我是Windows用户,因此收到有关Linux模块的错误感觉很奇怪.

This issue is especially confusing as I am a Windows user, so to be receiving an error about a module regarding linux feels quite strange.

请帮助.

C:\Users\Greg\Desktop\GregBots\reactbot> git push heroku master
Enumerating objects: 41, done.
Counting objects: 100% (41/41), done.
Delta compression using up to 8 threads
Compressing objects: 100% (28/28), done.
Writing objects: 100% (28/28), 19.45 KiB | 1.95 MiB/s, done.
Total 28 (delta 15), reused 0 (delta 0)
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):  13.6.0
remote:        engines.npm (package.json):   6.13.4
remote:
remote:        Resolving node version 13.6.0...
remote:        Downloading and installing node 13.6.0...
remote:        npm 6.13.4 already installed with node
remote:
remote: -----> Restoring cache
remote:        Cached directories were not restored due to a change in version of node, npm, yarn or stack
remote:        Module installation may take longer for this build
remote:
remote: -----> Installing dependencies
remote:        Installing node modules (package.json + package-lock)
remote:
remote:        > node@13.8.0 preinstall /tmp/build_5798122e415d759253929a4b5b0a6c16/node_modules/node
remote:        > node installArchSpecificPackage
remote:
remote:        npm ERR! code ETARGET
remote:        npm ERR! notarget No matching version found for node-linux-x64@13.8.0.
remote:        npm ERR! notarget In most cases you or one of your dependencies are requesting
remote:        npm ERR! notarget a package version that doesn't exist.
remote:
remote:        npm ERR! A complete log of this run can be found in:
remote:        npm ERR!     /tmp/npmcache.3VsTs/_logs/2020-02-26T01_02_25_357Z-debug.log
remote:        internal/modules/cjs/loader.js:976
remote:          throw err;
remote:          ^
remote:
remote:        Error: Cannot find module 'node-linux-x64/package.json'
remote:        Require stack:
remote:        - /tmp/build_5798122e415d759253929a4b5b0a6c16/node_modules/node/installArchSpecificPackage.js
remote:            at Function.Module._resolveFilename (internal/modules/cjs/loader.js:973:15)
remote:            at Function.resolve (internal/modules/cjs/helpers.js:78:19)
remote:            at ChildProcess.<anonymous> (/tmp/build_5798122e415d759253929a4b5b0a6c16/node_modules/node-bin-setup/index.js:18:27)
remote:            at ChildProcess.emit (events.js:321:20)
remote:            at maybeClose (internal/child_process.js:1028:16)
remote:            at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5) {
remote:          code: 'MODULE_NOT_FOUND',
remote:          requireStack: [
remote:            '/tmp/build_5798122e415d759253929a4b5b0a6c16/node_modules/node/installArchSpecificPackage.js'
remote:          ]
remote:        }
remote:        npm ERR! code ELIFECYCLE
remote:        npm ERR! errno 1
remote:        npm ERR! node@13.8.0 preinstall: `node installArchSpecificPackage`
remote:        npm ERR! Exit status 1
remote:        npm ERR!
remote:        npm ERR! Failed at the node@13.8.0 preinstall script.
remote:        npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
remote:
remote:        npm ERR! A complete log of this run can be found in:
remote:        npm ERR!     /tmp/npmcache.3VsTs/_logs/2020-02-26T01_02_26_775Z-debug.log
remote:
remote: -----> Build failed
remote:
remote:        We're sorry this build is failing! You can troubleshoot common issues here:
remote:        https://devcenter.heroku.com/articles/troubleshooting-node-deploys
remote:
remote:        Some possible problems:
remote:
remote:        - A module may be missing from 'dependencies' in package.json
remote:          https://devcenter.heroku.com/articles/troubleshooting-node-deploys#ensure-you-aren-t-relying-on-untracked-dependencies
remote:
remote:        Love,
remote:        Heroku
remote:
remote:  !     Push rejected, failed to compile Node.js app.
remote:
remote:  !     Push failed
remote: Verifying deploy...
remote:
remote: !       Push rejected to infinite-sea-94371.
remote:
To https://git.heroku.com/infinite-sea-94371.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/infinite-sea-94371.git'
PS C:\Users\Greg\Desktop\GregBots\reactbot>

感谢您的建议,Mazen.我已经听取了您的建议,但仍然无法部署到Heroku.现在,我已经将我的package.json附加到了Heroku上,因为Heroku会根据该软件包安装所需的依赖项.

Thanks a bunch for your suggestions Mazen. I've went through your advice, but can't deploy to Heroku still. I've now attached my package.json which I am pushing as well to Heroku as Heroku installs the dependencies that are needed as per the package.

    {
  "name": "reactbot",
  "version": "1.0.0",
  "description": "React bot",
  "main": "index.js",
  "engines": {
    "node": "13.6.0",
    "npm": "6.13.4"
  },
  "scripts": {
    "start": "node index.js",
    "backend": "nodemon index.js",
    "frontend": "npm run start --prefix client",
    "dev": "concurrently \"npm run backend\" \"npm run frontend\"",
    "heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "actions-on-google": "^2.12.0",
    "body-parser": "^1.19.0",
    "dialogflow": "^1.2.0",
    "dialogflow-fulfillment": "^0.6.1",
    "express": "^4.17.1",
    "mongoose": "^5.9.2"
  },
  "devDependencies": {
    "concurrently": "^5.1.0",
    "nodemon": "^2.0.2"
  }
}

推荐答案

此错误可能是由多种原因引起的:

This error might be caused by multiple things:

  • 根据您的错误,npm软件包node-linux-x64设置为不存在的错误版本.删除node-linux-x64,因为Heroku为他们的系统安装了最新版本的Node.js或将其设置为现有版本.
  • 您是否使用代码推送了package.json文件?
  • 您已将node_module推送到Heroku,其中具有某些版本的某些软件包,这些版本只能在您的发行版/OS上运行.
  • 您可能已在全球范围内安装了npm软件包,却忘记了将其包含在packages.json文件中.
  • According to your error, the npm package node-linux-x64 is set to the wrong version that doesn't exist. Remove node-linux-x64 as Heroku installs the most updated version of Node.js for their system or set it to an existing version.
  • Did you push your package.json file with your code?
  • You have pushed your node_module to Heroku which has certain versions of some packages that can only work on your distribution/OS.
  • You might have installed an npm package globally and forgot to include it to your packages.json file.

这篇关于无法推送到Heroku:找不到模块"node-linux-x64/package.json"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆