Heroku部署因缺少脚本而失败:开始

时间:2020-01-25 15:01:24

标签: node.js heroku

2020-01-25T14:33:23.080927+00:00 heroku[web.1]: Starting process with command `npm start`

2020-01-25T14:33:24.893568+00:00 heroku[web.1]: State changed from starting to crashed

2020-01-25T14:33:24.822413+00:00 app[web.1]: npm ERR! missing script: start

2020-01-25T14:33:24.829039+00:00 app[web.1]: 

2020-01-25T14:33:24.829298+00:00 app[web.1]: npm ERR! A complete log of this run can be found in:

2020-01-25T14:33:24.829400+00:00 app[web.1]: npm ERR!     /app/.npm/_logs/2020-01-
25T14_33_24_823Z-debug.log

2020-01-25T14:33:24.875898+00:00 heroku[web.1]: Process exited with status 1

2020-01-25T14:33:27.000000+00:00 app[api]: Build succeeded

2020-01-25T14:34:56.808298+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=hyperrestaurant.herokuapp.com request_id=3dc7142e-f261-4fc4-a9fd-c04b20a837f1 fwd="204.9.220.50" dyno= connect= service= status=503 bytes= protocol=https

2020-01-25T14:34:57.059549+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=hyperrestaurant.herokuapp.com request_id=9f22f080-cb8d-4ffc-a62a-216397f4fa40 fwd="204.9.220.50" dyno= connect= service= status=503 bytes= protocol=https

这是我的pakage.json

  "name": "HyperApp-Starter-kit",

  "version": "4.0.1",

  "description": "",

  "main": "index.js",

  "scripts": {

    "test": "jest",

    "build": "gulp build",

    "dev:webpack": "webpack --mode development --env.NODE_ENV=dev",

    "build:webpack": "webpack --mode production --env.NODE_ENV=production",

    "watch": "gulp",

    "proxy": "gulp watch-proxy",

    "static:dev": "gulp static-dev",

    "static:build": "gulp static-dev",

    "imgs": "gulp imagemin"
  },
  "author": "",

  "license": "ISC",

  "devDependencies": {

    "@babel/core": "^7.1.5",

    "@babel/plugin-proposal-class-properties": "^7.1.0",

    "@babel/preset-env": "^7.1.5",

    "@babel/preset-es2016": "^7.0.0-beta.53",

    "@babel/preset-react": "^7.0.0",

    "@babel/preset-stage-0": "^7.0.0",

    "@babel/register": "^7.0.0",

    "autoprefixer": "^9.3.1",

    "axios": "^0.18.0",

    "babel-core": "^6.26.3",

    "babel-loader": "^8.0.4",

    "babel-preset-env": "^1.7.0",

    "browser-sync": "^2.26.3",

    "clean-webpack-plugin": "^0.1.19",

    "css-loader": "^1.0.1",

    "extract-text-webpack-plugin": "^4.0.0-beta.0",

    "gulp": "^4.0.0",

    "gulp-autoprefixer": "^3.1.1",

    "gulp-edgejs": "^0.2.4",

    "gulp-imagemin": "^5.0.3",

    "gulp-pretty-url": "^0.1.1",

    "gulp-sass": "^3.0.0",

    "har-validator": "^5.1.3",

    "html-webpack-plugin": "^3.2.0",

    "jest": "^24.8.0",

    "mini-css-extract-plugin": "^0.4.4",

    "node-sass": "^4.10.0",

    "postcss-loader": "^3.0.0",

    "prettier": "^1.15.1",

    "prettier-loader": "^2.1.1",

    "react": "^16.8.6",

    "react-dom": "^16.8.6",

    "react-redux": "^5.1.0",

    "sass-loader": "^7.1.0",

    "style-loader": "^0.23.1",

    "uglify-es": "^3.3.9",

    "uglifyjs-webpack-plugin": "^1.3.0",

    "webpack": "^4.25.1",

    "webpack-cli": "^3.1.2",

    "webpack-md5-hash": "0.0.6"

  },
  "dependencies": {
    "@babel/plugin-proposal-decorators": "^7.1.6",

    "@babel/plugin-syntax-dynamic-import": "^7.0.0",

    "@babel/plugin-transform-async-to-generator": "^7.1.0",

    "babel-plugin-transform-react-jsx": "^6.24.1",

    "express": "^4.17.1",

    "gulp-pug": "^4.0.1",

    "hyperapp": "^0.12.0",

    "serve-static": "^1.14.1",

    "svelte": "^3.4.3",

    "svelte-loader": "^2.13.4",

    "webpack-dev-server": "^3.1.14"

  }
}

和我的server.js

const express = require('express')

const serveStatic = require('serve-static')

const path = require('path')

// create the express app

const app = express()

// create middleware to handle the serving the app

app.use("/", serveStatic ( path.join (__dirname, '/public')))

// serve index by default

app.get('/', function (req, res) {

  res.sendFile(__dirname + '/public/index.html')

})
// Create default port to serve the app on

const port = process.env.PORT || 5000

app.listen(port)

// Log to feedback that this is actually running

console.log('Server started on port ' + port)

1 个答案:

答案 0 :(得分:1)

您在package.json部分的scripts中缺少该命令。

将此起始行添加到该行:

...
  "scripts": {
    "start": "node server.js",
    "test": "jest",
...

或者用于启动应用程序的其他任何东西。

注意:在您的package.json中,您有一个定义为index.js的主脚本,并且发布了一个看起来像主入口点的文件server.js。也许是有意为之,但我过去常常使它们相同。