如何使用 hapi npm 配置 index.js 进行部署
How to configure index.js with hapi npm for deployment
我收到这个项目要部署,它使用了我不熟悉的hapi npm。我能够 运行 它在本地成功但是当我尝试部署它时出现错误,在 heroku
上错误是:
npm ERR! missing script: start
我想也许我必须在 index.js 中更改某些内容,也许是服务器常量中的端口或主机?
这是我的 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"
}
如果您的应用程序有一个您希望在部署时 运行 的构建步骤,您可以在 package.json:
中使用 Postinstall script
npm start
是在您的 package.json
文件中创建的脚本。
您可以查看更多相关信息 here
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
我收到这个项目要部署,它使用了我不熟悉的hapi npm。我能够 运行 它在本地成功但是当我尝试部署它时出现错误,在 heroku
上错误是:
npm ERR! missing script: start
我想也许我必须在 index.js 中更改某些内容,也许是服务器常量中的端口或主机?
这是我的 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"
}
如果您的应用程序有一个您希望在部署时 运行 的构建步骤,您可以在 package.json:
npm start
是在您的 package.json
文件中创建的脚本。
您可以查看更多相关信息 here
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