我想知道是否可以运行 grunt-contrib-connect 命令以便使用Heroku提供静态文件。
我的Grunt文件如下所示:
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
connect: {
server: {
options: {
port: process.env.PORT || 5000,
base: 'www',
keepalive: true
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-connect');
// Default task(s).
grunt.registerTask('default', ['connect']);
};
我的Procfile如下所示:
web: grunt
我的package.json看起来像这样:
{
"name": "herokoloco",
"version": "0.1.1",
"scripts": {
"postinstall": "bower install"
},
"dependencies": {
"grunt": "^0.4.5",
"grunt-cli": "^0.1.13",
"grunt-contrib-connect": "^0.8.0",
"bower": "~1.3.9"
},
"engines": {
"node": "0.10.x"
}
}
我的文件结构如下:
> node_modules
v www
index.html
bower.json
Gruntfile.js
package.json
Procfile
使用Heroku的“foreman start web”在本地完美运行,但在Heroku上不起作用。我刚在日志中收到此错误:
2014-10-08T21:19:23.620448 + 00:00 heroku [router]:at = error code = H14 desc =“没有正在运行的Web进程”方法= GET path =“/” 主机= shielded-waters-3266.herokuapp.com request_id = 4d669be2-a362-4968-8349-b83b8ad0e2f6 fwd =“198.245.95.126” dyno = connect = service = status = 503 bytes =
答案 0 :(得分:1)
一旦我确实设置了一些dynos,它就起作用了。为此,我从Heroku项目的终端发出了以下命令:
heroku ps:scale web=1
答案 1 :(得分:0)
通过设置命令在Procfile中启动服务器,您可以让Heroku在完成安装后运行您想要的任何命令。所以,像:
web: ./node_modules/grunt/.bin/grunt my-grunt-command ; node app.js
应该有用。
答案 2 :(得分:0)
确保您的软件包配置中列出了所有grunt依赖项(包括grunt-cli
),确保删除了连接配置的hostname
部分并使用进程端口..即“端口:process.env.PORT || 5000“在你连接configruation。这对我有用。