node.js - 如何使用 hapi npm 配置 index.js 进行部署
问题描述
我收到了这个项目来部署,它使用了我不熟悉的 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();
谢谢
解决方案
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.js
npm somescript
运行“somescript”脚本。这意味着它将运行do something
推荐阅读
- ansible - Ansible:从一组主机中获取一个变量
- python - sqlite3.InterfaceError:错误绑定参数 2 - 可能是不受支持的类型。nmap 开放端口打印值未存储在 sql 表中给出错误
- python - 为包含特定文本的行过滤数据框列
- html - 创建可以通过 HTML 中的自定义道具更新的动态 Vue 列表
- angular - Angulars 结构指令的确切语法是什么
- bash - /usr/local/bin/vim:无法执行二进制文件:执行格式错误
- r - 通过 selectInput 带引号的绘图选项
- javascript - 使用 Charts.js 的多个数据集的多个标签
- http - 如何使用 Apache-nifi 的 InvokeHttp 处理器发送带有附加文件的 http POST multipart/form-data 请求?
- access-token - 检查令牌验证的最佳实践