在Bluemix部署期间运行Grunt任务

pau*_*man 1 node.js gruntjs ibm-cloud

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

"scripts": {
  "start": "node app.js",
  "postinstall": "grunt heroku"
},
Run Code Online (Sandbox Code Playgroud)

这个咕噜咕噜的任务开始在我的Gruntfile.js文件中找到依赖的谈话,比如拉动Bower包,缩小图像,浏览器,移动,文件,清理等.

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

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

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

"engines": {
  "npm": "2.5.1",
  "node": "0.12.0"
}
Run Code Online (Sandbox Code Playgroud)

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

非常感谢你!保罗

Sai*_*nam 7

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

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

您现在可以指定节点和NPM引擎,就像您在其中一样package.json.

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