【发布时间】:2022-03-23 09:33:27
【问题描述】:
我没有对我的构建进行任何更改(所有相同的依赖项),但是当我推送到我的暂存环境时,它突然崩溃了。
起初我得到了这个 -
2022-02-10T03:42:49.245470+00:00 app[web.1]: > node server.js
2022-02-10T03:42:49.245471+00:00 app[web.1]:
2022-02-10T03:42:49.311176+00:00 app[web.1]: node:internal/modules/cjs/loader:936
2022-02-10T03:42:49.311177+00:00 app[web.1]: throw err;
2022-02-10T03:42:49.311177+00:00 app[web.1]: ^
2022-02-10T03:42:49.311178+00:00 app[web.1]:
2022-02-10T03:42:49.311181+00:00 app[web.1]: Error: Cannot find module './internal/streams/buffer_list'
2022-02-10T03:42:49.311181+00:00 app[web.1]: Require stack:
2022-02-10T03:42:49.311182+00:00 app[web.1]: - /app/node_modules/readable-stream/lib/_stream_readable.js
2022-02-10T03:42:49.311182+00:00 app[web.1]: - /app/node_modules/readable-stream/readable.js
2022-02-10T03:42:49.311182+00:00 app[web.1]: - /app/node_modules/newrelic/lib/util/logger.js
2022-02-10T03:42:49.311182+00:00 app[web.1]: - /app/node_modules/newrelic/lib/logger.js
2022-02-10T03:42:49.311183+00:00 app[web.1]: - /app/node_modules/newrelic/index.js
2022-02-10T03:42:49.311183+00:00 app[web.1]: - /app/server.js
2022-02-10T03:42:49.311186+00:00 app[web.1]: at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
2022-02-10T03:42:49.311190+00:00 app[web.1]: at Function.Module._load (node:internal/modules/cjs/loader:778:27)
2022-02-10T03:42:49.311190+00:00 app[web.1]: at Module.require (node:internal/modules/cjs/loader:1005:19)
2022-02-10T03:42:49.311190+00:00 app[web.1]: at require (node:internal/modules/cjs/helpers:102:18)
2022-02-10T03:42:49.311190+00:00 app[web.1]: at Object.<anonymous> (/app/node_modules/readable-stream/lib/_stream_readable.js:72:18)
2022-02-10T03:42:49.311191+00:00 app[web.1]: at Module._compile (node:internal/modules/cjs/loader:1103:14)
2022-02-10T03:42:49.311191+00:00 app[web.1]: at Object.Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
2022-02-10T03:42:49.311191+00:00 app[web.1]: at Module.load (node:internal/modules/cjs/loader:981:32)
2022-02-10T03:42:49.311191+00:00 app[web.1]: at Function.Module._load (node:internal/modules/cjs/loader:822:12)
2022-02-10T03:42:49.311192+00:00 app[web.1]: at Module.require (node:internal/modules/cjs/loader:1005:19) {
2022-02-10T03:42:49.311192+00:00 app[web.1]: code: 'MODULE_NOT_FOUND',
2022-02-10T03:42:49.311192+00:00 app[web.1]: requireStack: [
2022-02-10T03:42:49.311192+00:00 app[web.1]: '/app/node_modules/readable-stream/lib/_stream_readable.js',
2022-02-10T03:42:49.311193+00:00 app[web.1]: '/app/node_modules/readable-stream/readable.js',
2022-02-10T03:42:49.311193+00:00 app[web.1]: '/app/node_modules/newrelic/lib/util/logger.js',
2022-02-10T03:42:49.311193+00:00 app[web.1]: '/app/node_modules/newrelic/lib/logger.js',
2022-02-10T03:42:49.311194+00:00 app[web.1]: '/app/node_modules/newrelic/index.js',
2022-02-10T03:42:49.311194+00:00 app[web.1]: '/app/server.js'
2022-02-10T03:42:49.311194+00:00 app[web.1]: ]
2022-02-10T03:42:49.311194+00:00 app[web.1]: }
所以我认为 Heroku 可能正在打击 newrelic 或其他什么,所以我卸载了它,然后现在我得到了 -
2022-02-10T04:17:31.000789+00:00 app[web.1]: > node server.js
2022-02-10T04:17:31.000789+00:00 app[web.1]:
2022-02-10T04:17:31.222303+00:00 app[web.1]: node:internal/modules/cjs/loader:936
2022-02-10T04:17:31.222304+00:00 app[web.1]: throw err;
2022-02-10T04:17:31.222305+00:00 app[web.1]: ^
2022-02-10T04:17:31.222305+00:00 app[web.1]:
2022-02-10T04:17:31.222306+00:00 app[web.1]: Error: Cannot find module '../../helpers/getConstructorName'
2022-02-10T04:17:31.222309+00:00 app[web.1]: Require stack:
2022-02-10T04:17:31.222310+00:00 app[web.1]: - /app/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js
2022-02-10T04:17:31.222310+00:00 app[web.1]: - /app/node_modules/mongoose/lib/drivers/node-mongodb-native/index.js
2022-02-10T04:17:31.222310+00:00 app[web.1]: - /app/node_modules/mongoose/lib/index.js
2022-02-10T04:17:31.222310+00:00 app[web.1]: - /app/node_modules/mongoose/index.js
2022-02-10T04:17:31.222311+00:00 app[web.1]: - /app/server.js
2022-02-10T04:17:31.222311+00:00 app[web.1]: at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
2022-02-10T04:17:31.222312+00:00 app[web.1]: at Function.Module._load (node:internal/modules/cjs/loader:778:27)
2022-02-10T04:17:31.222312+00:00 app[web.1]: at Module.require (node:internal/modules/cjs/loader:1005:19)
2022-02-10T04:17:31.222312+00:00 app[web.1]: at require (node:internal/modules/cjs/helpers:102:18)
2022-02-10T04:17:31.222326+00:00 app[web.1]: at Object.<anonymous> (/app/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:12:28)
2022-02-10T04:17:31.222326+00:00 app[web.1]: at Module._compile (node:internal/modules/cjs/loader:1103:14)
2022-02-10T04:17:31.222326+00:00 app[web.1]: at Object.Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
2022-02-10T04:17:31.222326+00:00 app[web.1]: at Module.load (node:internal/modules/cjs/loader:981:32)
2022-02-10T04:17:31.222327+00:00 app[web.1]: at Function.Module._load (node:internal/modules/cjs/loader:822:12)
2022-02-10T04:17:31.222327+00:00 app[web.1]: at Module.require (node:internal/modules/cjs/loader:1005:19) {
2022-02-10T04:17:31.222327+00:00 app[web.1]: code: 'MODULE_NOT_FOUND',
2022-02-10T04:17:31.222328+00:00 app[web.1]: requireStack: [
2022-02-10T04:17:31.222328+00:00 app[web.1]: '/app/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js',
2022-02-10T04:17:31.222328+00:00 app[web.1]: '/app/node_modules/mongoose/lib/drivers/node-mongodb-native/index.js',
2022-02-10T04:17:31.222329+00:00 app[web.1]: '/app/node_modules/mongoose/lib/index.js',
2022-02-10T04:17:31.222329+00:00 app[web.1]: '/app/node_modules/mongoose/index.js',
2022-02-10T04:17:31.222329+00:00 app[web.1]: '/app/server.js'
2022-02-10T04:17:31.222330+00:00 app[web.1]: ]
2022-02-10T04:17:31.222330+00:00 app[web.1]: }
我尝试清理 npm 缓存,删除 node_modules 文件夹,然后 npm install 出现两个错误,但它们仍然存在。当我在命令行上使用 npm start 时,它也启动没有问题,所以 Heroku 有什么问题吗?关于我还应该尝试什么的任何建议?会不会是节点版本?我不是 100% 的,但我觉得在构建之前我会注意到 Node 14.x,现在它是 16.x。
还有,package.json -
{
"name": "CSQ",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"devStart": "nodemon server.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@sendgrid/mail": "^7.4.6",
"@slack/events-api": "^3.0.1",
"@slack/web-api": "^6.5.1",
"base-64": "^1.0.0",
"base64-stream": "^1.0.0",
"concat-stream": "^2.0.0",
"excel4node": "^1.7.2",
"express": "^4.17.1",
"form-data": "^4.0.0",
"googleapis": "^89.0.0",
"https": "^1.0.0",
"intuit-oauth": "^4.0.0",
"mailgun-js": "^0.22.0",
"mongodb": "^3.6.2",
"mongoose": "^6.0.12",
"node-fetch": "^2.6.1",
"node-geocoder": "^3.27.0",
"node-quickbooks": "^2.0.39",
"pdf-forms": "^0.1.1",
"pdf-lib": "^1.17.0",
"pdfform.js": "^1.0.14",
"plotly": "^1.0.6",
"popsicle": "^10.0.0",
"uuid": "^8.3.2",
"xmlhttprequest": "^1.8.0"
},
"devDependencies": {
"dotenv": "^10.0.0",
"nodemon": "^2.0.12"
}
}
【问题讨论】:
-
(a) “删除 node_modules 文件夹”是什么意思?你只是在本地删除它吗?该文件夹是否已提交到您的存储库? (b) 请出示您的
package.json。 -
@Chris 感谢您的关注,更新了带有 package.json 的帖子。是的,在本地删除;没有没有提交,因为它在 .gitignore 中。好点,我必须弄清楚如何为heroku应用程序做到这一点;我刚刚删除了该应用程序,并在 Heroku 上创建了一个全新的应用程序。
-
明确一点:您的
node_modules/应该不被提交。很好,你忽略了它。 -
谢谢@Chris 我尝试按照教程进行操作 :) 所以你认为它可能是节点版本或其他什么?
-
我在您的
package.json中没有看到构建脚本或启动脚本。你有Procfile吗?