Heroku“错误:找不到模块'request'”

时间:2020-09-25 20:38:48

标签: javascript node.js heroku

最近我的Heroku停止工作了。每次尝试运行任何脚本(包括我编写的测试脚本)时,都会出现以下错误:

internal/modules/cjs/loader.js:968
  throw err;
  ^

Error: Cannot find module 'request'
Require stack:
- /app/src/util/util.js
- /app/src/main.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:965:15)
    at Function.Module._load (internal/modules/cjs/loader.js:841:27)
    at Module.require (internal/modules/cjs/loader.js:1025:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/app/src/util/util.js:3:19)
    at Module._compile (internal/modules/cjs/loader.js:1137:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
    at Module.load (internal/modules/cjs/loader.js:985:32)
    at Function.Module._load (internal/modules/cjs/loader.js:878:14)
    at Module.require (internal/modules/cjs/loader.js:1025:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/app/src/util/util.js', '/app/src/main.js' ]
}

我已经完成了以下Heroku故障排除页面中的所有操作,但没有任何效果。 https://devcenter.heroku.com/articles/troubleshooting-node-deploys https://help.heroku.com/TO64O3OG/cannot-find-module-in-node-js-at-runtime

我什至尝试克隆回购的干净副本,并且能够通过以下方式成功运行脚本

npm install
npm start 

我的package.json

{
  "name": "lol-catalyst",
  "version": "0.0.1",
  "description": "LoL Catalyst.",
  "main": "main.js",
  "scripts": {
    "start": "node src/main.js"
  },
  "dependencies": {
    "archiver": "latest",
    "aws-sdk": "latest",
    "cheerio": "latest",
    "express": "^4.17.1",
    "html-to-text": "latest",
    "lodash": "^4.17.20",
    "request": "latest",
    "retry": "latest"
  },
  "engines": {
    "node": "12.x",
    "npm": "6.x"
  }
}

Procfile:

worker: node --optimize_for_size --max_old_space_size=460 --gc_interval=100 src/main.js bihourly
esports: node --optimize_for_size --max_old_space_size=460 --gc_interval=100 src/main.js esports
test: npm start

我尝试过heroku run test并遇到相同的错误。

AFAIK在过去的两个月中,我没有对代码进行太多更改,而且问题似乎已经完全解决了。

过去一个小时我一直在研究和测试,对您的帮助将不胜感激。

补充:我已经确认在heroku和本地安装的npm和node版本都完全相同。

添加:我尝试将随机依赖项添加到util.js中,除了标准依赖项之外,没有其他可用的依赖项。例如,我将util.js更改为

const path      = require('path')
const fs        = require('fs')
const retry     = require('retry')
const request   = require('request')
...

现在,它抱怨找不到retry而不是request,但是这表明它可以找到pathfs

添加:看来Heroku没有安装我的依赖项。根据日志,最后一次成功运行脚本的时间是9/23。通过检查提交历史记录,我确实在9/23上推送了一次提交,但是更改的只是js文件中的一行。这似乎是最近出现的Heroku方面的问题。

0 个答案:

没有答案
相关问题