Я получил этот проект для развертывания, в котором используется незнакомый мне hapi npm. Я могу успешно запустить его локально, но когда я пытаюсь развернуть его, я получаю сообщение об ошибке, на heroku ошибка:
npm ERR! missing script: start
Я думаю, может быть, мне нужно что-то изменить в index.js, может быть, порт или хост внутри server 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();
Спасибо





отсутствует script: start. В вашем package.json, означает, что вам не хватает configure, где start
проверьте свой файл package.json, вы должны определить это так
"scripts": {
"start": "node index.js"
}
Если в вашем приложении есть этап сборки, который вы хотите запустить при развертывании, вы можете использовать Сценарий постустановкиin package.json:
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 запустит сценарий «запуска». Это означает, что он будет запускать node index.jsnpm somescript запустит сценарий "somescript". Это означает, что он будет запускать do something