在我的本地机器上,运行我的 Node.js 项目工作得很好。但是当我将我的应用程序部署到 Heroku 时,我收到一个 H10 错误,其中包含以下消息:
Error: Cannot find module './lib/websocket'
下面是我的包.json文件:
{
"name": "mazebattles",
"version": "1.0.0",
"description": "multiplayer maze competition",
"main": "server.js",
"scripts": {
"test": "node server.js"
},
"keywords": [
"mazes",
"multiplayer",
"game",
"race"
],
"author": "henryzhu",
"license": "ISC",
"dependencies": {
"easytimer.js": "^2.4.0",
"express": "^4.16.4",
"socket.io": "^2.2.0",
"socketio": "^1.0.0",
"uniqid": "^5.0.3"
},
"devDependencies": {
"@babel/preset-env": "^7.4.2",
"babel-cli": "^6.26.0",
"babel-preset-env": "^1.7.0",
"babel-preset-es2015": "^6.24.1"
},
"engines": {
"node": "10.13.0"
}
}
当依赖项位于devDependencies中时,我遇到了这个问题。您的堆栈跟踪应该会有所帮助,并且您确定要查看哪个模块。
我通过不部署node_modules来修复错误。显然,Heroku会自动为您部署node_modules。