【问题标题】:Why do I obtain this error when deploying app to Heroku?为什么在将应用程序部署到 Heroku 时出现此错误?
【发布时间】:2016-04-10 10:27:18
【问题描述】:

使用 git hub 将我的应用程序部署到 heroku 时出现某种错误。问题是,我不了解 heroku 日志和相关错误。这是heroku日志:

Marcuss-MacBook-Pro:Weather-App marcushurney$ heroku logs
2016-01-05T14:37:27.798077+00:00 app[web.1]: npm ERR! Please include the following file with any support request:
2016-01-05T14:37:27.798377+00:00 app[web.1]: npm ERR!     /app/npm-debug.log
2016-01-05T14:37:27.786949+00:00 app[web.1]: npm ERR! node v5.1.1
2016-01-05T14:37:27.786556+00:00 app[web.1]: npm ERR! argv "/app/.heroku/node/bin/node" "/app/.heroku/node/bin/npm" "start"
2016-01-05T14:37:27.787856+00:00 app[web.1]: npm ERR! npm  v3.3.12
2016-01-05T14:37:28.776245+00:00 heroku[web.1]: Process exited with status 1
2016-01-05T14:37:28.789412+00:00 heroku[web.1]: State changed from starting to crashed
2016-01-05T17:27:16.684869+00:00 heroku[web.1]: State changed from crashed to starting
2016-01-05T17:27:17.853743+00:00 heroku[web.1]: Starting process with command `npm start`
2016-01-05T17:27:20.423495+00:00 app[web.1]: npm ERR! node v5.1.1
2016-01-05T17:27:20.423130+00:00 app[web.1]: npm ERR! argv "/app/.heroku/node/bin/node" "/app/.heroku/node/bin/npm" "start"
2016-01-05T17:27:20.424111+00:00 app[web.1]: npm ERR! npm  v3.3.12
2016-01-05T17:27:20.425937+00:00 app[web.1]: npm ERR! missing script: start
2016-01-05T17:27:20.422441+00:00 app[web.1]: npm ERR! Linux 3.13.0-71-generic
2016-01-05T17:27:20.426242+00:00 app[web.1]: npm ERR! 
2016-01-05T17:27:20.426432+00:00 app[web.1]: npm ERR! If you need help, you may report this error at:
2016-01-05T17:27:20.426634+00:00 app[web.1]: npm ERR!     <https://github.com/npm/npm/issues>

【问题讨论】:

    标签: git heroku npm npm-scripts npm-start


    【解决方案1】:

    我使用的是 nodemon.js,所以我将它包含在 package.json 中,如下所示: “脚本”

     "scripts": {
            "test": "echo \"Error: no test specified\" && exit 1",
            "dev": "nodemon index.js",
         },
    

    但是我得到了这个 Heroku 错误:

    2022-01-06T11:51:55.044364+00:00 heroku[web.1]:启动过程 命令npm start 2022-01-06T11:51:57.390306+00:00 app[web.1]: npm 呃!缺少脚本:开始 2022-01-06T11:51:57.398106+00:00 应用 [web.1]:2022-01-06T11:51:57.398334+00:00 应用 [web.1]:npm 错误!一种 此运行的完整日志可在以下位置找到: 2022-01-06T11:51:57.398402+00:00 app[web.1]: npm ERR!
    /app/.npm/_logs/2022-01-06T11_51_57_391Z-debug.log 2022-01-06T11:51:57.598054+00:00 heroku[web.1]:进程退出 状态 1 2022-01-06T11:51:57.882212+00:00 heroku[web.1]:状态已更改 从开始到崩溃 2022-01-06T11:51:57.953568+00:00 heroku[web.1]:状态从崩溃变为开始 2022-01-06T11:52:00.240909+00:00 heroku[web.1]:启动过程 命令npm start 2022-01-06T11:52:02.010859+00:00 app[web.1]: npm 呃!缺少脚本:开始 2022-01-06T11:52:02.014370+00:00 应用[web.1]:2022-01-06T11:52:02.014567+00:00 应用[web.1]:npm 错误!一种 此运行的完整日志可在以下位置找到: ..................................等等

    我发现 Heroku 使用“npm start”来运行我们的应用程序,而我没有将它包含在 package.json 中;因此将其包括在以下内容中:

    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "dev": "nodemon index.js",
        "start": "node index.js"
      },
    

    然后重启git进程:

    -heroku restart
    -heroku git:remote -a app_name
    -git add .
    -git commit -am "Your commit"
    -git push heroku master
    

    一切都很顺利。

    【讨论】:

      【解决方案2】:

      经过几次故障排除后,我在尝试使用 heroku 部署服务器时遇到了同样的问题。我对 package.json 所做的更改包括在脚本中创建 start 属性;

      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "node app.js"
      },
      

      进行更改后,确保您的 Procfile 没有扩展名有这一行;

        web: node app.js (Depends on your server file).
      

      然后您可以继续提交您的文件。

      希望这会有所帮助

      【讨论】:

        【解决方案3】:

        由于某种原因将启动脚本推到顶部修复了问题

        所以不是

        "scripts": {
            "test": "jest",
            "start": "node app.js"
        }
        

        我做到了

        "scripts": {
            "start": "node app.js",
            "test": "jest"
        
        }
        

        【讨论】:

          【解决方案4】:

          我的愚蠢错误是我将主分支推送到 Heroku,而我的更改在另一个分支中!

          确保首先将最新分支与主分支合并

          > git checkout master
          
          > git merge your-latest-branch
          
          > git push heroku master
          

          【讨论】:

            【解决方案5】:

            我的 node js 应用在发布到 heroku.com 时也遇到了类似的错误

            首先创建一个procfile,procfile是一个简单的文本文件,没有任何扩展名。

            目前只在 procfile 中放置一行。

            web: npm start
            

            现在使用命令创建 package.json 文件

            npm init
            

            创建 package.json 文件后,请将 start 属性放在脚本中。

            "scripts": {
                "start": "node app.js",
                "test": "echo \"Error: no test specified\" && exit 1"
              },
            

            现在提交所有 (procfile/package.json) 待处理文件。并再次从 heroku 部署应用程序。

            【讨论】:

              【解决方案6】:

              就我而言,changing 这个:

              "scripts": {
                   "test": "echo \"Error: no test specified\" && exit 1"
                  },
              

              到这里:

              "scripts": {
                 "start": "node app.js"
                  },
              

              解决办法

              【讨论】:

                【解决方案7】:

                你必须通知 heroku 从哪里开始:missing script: start。在你的 package.json 中,你应该有类似this:

                "scripts": {
                  "start": "node index.js"
                }
                

                index.js 是您的入口点。

                作为alternative,可以在Procfile中指定:

                web: node index.js
                

                【讨论】:

                • 解决了问题!
                • @LMeyer 它仍然没有为我修复它。有任何想法吗?我已经在 package.json 中包含了 start
                • @TheProgrammerG 可以肯定的是,如果您添加了开头,则日志中没有missing script: start。你有什么?
                • 你为我节省了很多时间!谢谢!
                • 如果是typescript + node, express app呢?
                猜你喜欢
                • 2020-03-01
                • 2013-02-15
                • 2019-11-11
                • 2022-09-25
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-03-25
                • 1970-01-01
                相关资源
                最近更新 更多