首页 > 解决方案 > 成功构建 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

我不确定哪些文件可能会有所帮助,请告诉我如果我可以提供任何其他有帮助的文件

标签: ruby-on-railsheroku

解决方案


Heroku 认为您的 Rails 应用程序是 Nodejs 应用程序,因为有一个 package.json 文件而没有 Procfile。对于 Rails 应用程序,该 package.json 文件应该是完全不需要的,请尝试删除它。


推荐阅读