Как настроить index.js с hapi npm для развертывания - PullRequest
0 голосов
/ 28 ноября 2018

Я получил этот проект для развертывания, который использует hapi npm, с которым я не знаком.Я могу запустить его успешно локально, но когда я пытаюсь развернуть его, я получаю сообщение об ошибке, на heroku ошибка:

npm ERR! missing script: start

Я думаю, может быть, мне нужно изменитьчто-то в index.js может быть порт или хост внутри сервера const?Вот мой index.js

const Hapi = require('hapi');
const path = require('path');
const fs = require('fs');
const util = require('util');


const readDir = util.promisify(fs.readdir);

const server = Hapi.server({
  port: 3000,
  host: 'localhost',
  routes: {
    files: {
      relativeTo: path.join(__dirname, 'public')
    }
  }
})

const start = async () => {
  await server.register(require('vision'));
  await server.register(require('inert'));

  server.views({
    engines: {
      html: require('handlebars')
    },
    relativeTo: __dirname,
    path: 'templates',
    layout: 'layout-other',
    layoutPath: 'templates/layout'
  });

  // Static files
  server.route({
    method: 'GET',
    path: '/{param*}',
    handler: {
      directory: {
        path: path.join(__dirname, 'public'),
        listing: true
      }
    }
  });

  require('./routes')(server);

  server.start();
}

start();

Спасибо

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

npm start - это скрипт, который создается в вашем файле package.json.Вы можете проверить больше об этом здесь

Пример файла package.json:

{
  "name": "node-js-sample",
  "version": "0.2.0",
  "description": "A sample Node.js app using Express 4",
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "somescript":"do something"
  },
  "dependencies": {
    "express": "^4.13.3"
  },
  "license": "MIT"
}

npm start запустит скрипт "start".Это означает, что он запустит node index.js
npm somescript, запустит скрипт «somescript».Это означает, что он будет работать do something

0 голосов
/ 28 ноября 2018

отсутствует script: start.В вашем package.json, означает, что вы не можете настроить, с чего начать проверку файла package.json, вы должны определить это следующим образом:

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

Если в вашем приложении есть шаг сборки, который вам нужендля запуска при развертывании вы можете использовать сценарий Postinstall в package.json:

...