ruby-on-rails - 成功构建 Rails 应用程序并将其部署到 Heroku 后出现 NPM 错误
问题描述
我一直在使用 google-maps-4-rails 开发一个 rails 应用程序来可视化自行车站。该应用程序在我的本地服务器上运行良好,但在部署到 Heroku 时出现错误。我尝试在生产环境中本地启动它,但它工作正常。我很茫然,因为这是我第一次涉足前端,我不知道如何处理这种情况。
我之前添加了 nodejs buildpack 来解决其他一些问题,也许它会导致问题。我还格式化了 package.json,虽然我不完全确定它是否正确。早期的问题与 heroku 上不可用的纱线有关。
我的 package.json :
{
"name": "sample_app",
"private": true,
"engines": {
"yarn": "1.7.0"
},
"scripts": {
"start": "node server"
},
"dependencies": {},
"keywords": [
"node",
"heroku"
]
}
我来自 heroku 的日志:
: Starting process with command `npm start`
2019-04-20T09:54:42.459328+00:00 heroku[web.1]: State changed from starting to crashed
2019-04-20T09:54:42.009377+00:00 app[web.1]:
2019-04-20T09:54:42.009398+00:00 app[web.1]: > sample_app@ start /app
2019-04-20T09:54:42.009399+00:00 app[web.1]: > node server
2019-04-20T09:54:42.009401+00:00 app[web.1]:
2019-04-20T09:54:42.337386+00:00 app[web.1]: internal/modules/cjs/loader.js:584
2019-04-20T09:54:42.337425+00:00 app[web.1]: throw err;
2019-04-20T09:54:42.337427+00:00 app[web.1]: ^
2019-04-20T09:54:42.337429+00:00 app[web.1]:
2019-04-20T09:54:42.337431+00:00 app[web.1]: Error: Cannot find module '/app/server'
2019-04-20T09:54:42.337433+00:00 app[web.1]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15)
2019-04-20T09:54:42.337434+00:00 app[web.1]: at Function.Module._load (internal/modules/cjs/loader.js:508:25)
2019-04-20T09:54:42.337436+00:00 app[web.1]: at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)
2019-04-20T09:54:42.337438+00:00 app[web.1]: at startup (internal/bootstrap/node.js:283:19)
2019-04-20T09:54:42.337439+00:00 app[web.1]: at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
2019-04-20T09:54:42.343303+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2019-04-20T09:54:42.343921+00:00 app[web.1]: npm ERR! errno 1
2019-04-20T09:54:42.345414+00:00 app[web.1]: npm ERR! sample_app@ start: `node server`
2019-04-20T09:54:42.345427+00:00 app[web.1]: npm ERR! Exit status 1
2019-04-20T09:54:42.349073+00:00 app[web.1]: npm ERR!
2019-04-20T09:54:42.349078+00:00 app[web.1]: npm ERR! Failed at the sample_app@ start script.
2019-04-20T09:54:42.349081+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
2019-04-20T09:54:42.352338+00:00 app[web.1]:
2019-04-20T09:54:42.352554+00:00 app[web.1]: npm ERR! A complete log of this run can be found in:
2019-04-20T09:54:42.353207+00:00 app[web.1]: npm ERR! /app/.npm/_logs/2019-04-20T09_54_42_347Z-debug.log
2019-04-20T09:54:42.440910+00:00 heroku[web.1]: Process exited with status 1
我不确定哪些文件可能会有所帮助,请告诉我如果我可以提供任何其他有帮助的文件
解决方案
Heroku 认为您的 Rails 应用程序是 Nodejs 应用程序,因为有一个 package.json 文件而没有 Procfile。对于 Rails 应用程序,该 package.json 文件应该是完全不需要的,请尝试删除它。
推荐阅读
- python - 如何启动 pdb 并从 REPL 进入函数?
- android - 当我在 Playstore 中搜索时,Google Play 控制台不显示应用统计信息也不显示
- php - Symfony3.4:预期的 X 参数。找到 X
- python - Mac 上的 Python 模块
- javascript - 如何从列表js中删除特定项目?
- azure - 使用带有 MSAL.js 的 Javascript 客户端应用程序时,如何在访问令牌中获取应用程序角色声明 (Roles) 以访问受保护的 API
- java - 逻辑错误,Java中字符串的二进制搜索
- android - Glide 生成大小为 0 的 ImageView
- javascript - 使用正则表达式从字符串末尾重复字符集
- node.js - CocoaPods 找不到 pod“lottie-ios”的兼容版本