麻烦在heroku上使用grunt连接服务器

时间:2014-04-21 18:09:14

标签: javascript node.js heroku express gruntjs

我能找到的所有教程都使用某种app.js在heroku上运行他们的节点服务器。

我已经配置了我的grunt-connect任务,为我的单页应用程序使用modRewrite,以便所有请求只返回index.html。因此,在安装npm之后,以某种方式让heroku运行grunt dist会很方便。

我已尝试将此行添加到我的package.json

  "scripts": {
    "postinstall": "echo postinstall time; ./node_modules/grunt/lib/grunt.js dist"
  }

但我认为我的道路有问题,因为它没有用。我收到了Permission denied错误。

我也尝试过使用一个简单的app.js快速服务器(即使我不得不重新弄清楚如何进行modRewrite) - 但是在某个地方失败了 - heroku正在寻找一个index.js,我没有。

谢谢!

1 个答案:

答案 0 :(得分:0)

我最终得到的解决方案是使用我的grunt任务中相同的modRewrite代码的简单连接服务器:

var connect = require('connect');
var modRewrite = require('connect-modrewrite');

var app = connect()
  .use(modRewrite(
    ['^[^\\.]*$ /index.html [L]']
  ))
  .use(connect.static('./dist/'))
  .listen(process.env.PORT || 3000)

以下Procfile:

web: node app.js