Javascript “希罗库”;错误:找不到模块';请求'&引用;
最近我的Heroku停止工作了。每次尝试运行任何脚本(包括我编写的测试脚本)时,都会出现以下错误:Javascript “希罗库”;错误:找不到模块';请求'&引用;,javascript,node.js,heroku,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/mod
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' ]
}
Mypackage.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"
}
}
程序文件:
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运行测试,但得到了相同的错误
好吧,在过去的两个月里,我没有对代码做太多修改,问题似乎是自己开始的
在过去的一个小时里,我一直在研究和测试,如果有任何帮助,我将不胜感激
另外:我已经确认在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
,但是这表明它可以找到path
和fs
另外:看起来Heroku没有安装我的依赖项。根据日志,上次成功运行脚本是在9月23日。通过检查提交历史记录,我确实在9月23日推送了一次提交,但它所改变的只是js文件中的一行。这似乎是最近引入的一个Heroku方面的问题。您不应该使用request,它已被弃用,请参阅我了解它已被弃用,但我希望暂时继续使用它。Heroku不支持使用不推荐使用的库吗?(另外,该项目已有3年历史,因此需要花费大量时间来替换请求)我想我已经找到了问题所在。出于某种原因,Heroku没有安装我的依赖项。Heroku建议不要这样做,但在我的node_模块目录中检查解决了这个问题。
const path = require('path')
const fs = require('fs')
const retry = require('retry')
const request = require('request')
...