在Bluemix部署期间运行Grunt任务

时间:2015-04-28 18:01:18

标签: node.js gruntjs ibm-cloud

我有一个令人兴奋的Node应用程序,我想从Heroku托管到Bluemix。它有点复杂,部署运行各种任务,由我的package.js文件的一部分启动:

"scripts": {
  "start": "node app.js",
  "postinstall": "grunt heroku"
},

这个笨拙的任务启动了我Gruntfile.js文件中的依赖会话,比如拉动Bower包,缩小图像,浏览器,移动,文件,清理等等。

我认为在推送到Bluemix时我可以启动部署任务?如果是这样,它们是否会以类似的方式完成(package.json的脚本部分中的命令)来运行我Gruntfile.js中定义的任务?

在heroku中,我的整个git repo将被复制到他们的远程,所以一切都在那里,而不仅仅是运行脚本产生dist目录的输出,我认为在Bluemix上会是一样的吗?

最后,在我的包文件中,我将定义npm和节点版本:

"engines": {
  "npm": "2.5.1",
  "node": "0.12.0"
}

和Heroku将确保它运行特定于我的实例的版本。 Bluemix是否相同?

非常感谢! 保罗

1 个答案:

答案 0 :(得分:7)

在Bluemix中,运行npm install命令来安装依赖项。这将启动grunt heroku部分中的postinstall任务。请注意,您的devDependencies将不会被下载。如果您的grunt任务需要它们,则可能需要将它们移动到dependencies部分。

是的,您推送的整个应用程序存储库将在Bluemix上复制,类似于Heroku。

您现在可以在package.json中指定节点和NPM引擎。

<强>过时: 您当然可以指定节点引擎,就像您在示例中所拥有的一样。但是,NPM版本目前不可配置,而是由Node.js运行时中打包的内容提供。