nodejs bootstrap项目仅在本地工作

时间:2017-09-11 19:23:40

标签: javascript node.js twitter-bootstrap heroku

我一直在尝试不同的东西,并寻找各种方法来解决它,但我需要一些额外的提示来使这项工作。

我和Gulp有一个工作的NodeJS Bootstrap项目。我的网站在本地运作。

所以在我的项目中我有fiollowing文件(以及其他文件夹):

  • gulpfile.js
  • 的index.html
  • 的package.json

当我通过' gulp dev'在本地运行我的项目时一切似乎都很完美在Heroku部署之后给出了错误:npm ERR!缺少脚本:开始

这是有道理的,因为我的package.json确实没有启动脚本。这怎么能在当地工作?

任何线索? 感谢

3 个答案:

答案 0 :(得分:0)

如果代码是客户端,则应在a static server中提供捆绑的HTML / CSS / JS。运行节点只是为了提供静态资产是没有意义的。

答案 1 :(得分:0)

我从未使用过heroku,但是我在AWS中托管的节点应用程序必须在我的package.json中添加一个启动脚本

"scripts": {
"start": "set NODE_ENV=production nodemon app.js",
"test": "echo \"Error: no test specified\" && exit 1"
},

如果您不使用nodemon,则可以使用类似的节点启动命令。

答案 2 :(得分:0)

node.js file

将其命名为index.js

首先,在开始将所有当前文件移动到上面的父文件夹中名为 public 的新文件夹之前,先创建文件 index.js

一旦您位于 public 上方的父文件夹中,请在命令行中为您创建 index.js 文件的目录运行此文件

npm i express --save

这将为node.js安装一个mini框架并将其保存到project.json config

对于index.js文件,

这是内容

/// START
var express = require('express');
var path = require('path')
var app = express();        
var port = process.env.PORT || 80;

// this allows the files to be visible without having to type in the
// index.html for the url simply do / and you'll get the url
app.use(express.static(path.join(__dirname, 'public'),{
  extensions: ['html']}
));

app.listen(port);
///END

您需要确保index.js(节点文件)位于项目其余部分之上的1个文件夹中。在这种情况下,项目应位于名为public的文件夹中

在将其上传到heroku之前,让它在本地计算机上运行

你需要运行 node index.js 如果你遇到任何错误我们可以解决它们,但这是一个非常通用的静态服务node.js服务器。

您需要做的最后一件事是进入project.json文件并添加以下内容,您可以将其添加到上面" title"在这种情况下,以后很容易找到

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