运行 Bluemix 部署期间的 Grunt 任务

Run Grunt tasks during Bluemix deployment

我有一个令人兴奋的 Node 应用程序,我想将其从托管在 Heroku 上迁移到 Bluemix。部署 运行 的各种任务有点复杂,这些任务由我的 package.js 文件的一部分开始:

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

g运行t 任务启动了在我的 Gruntfile.js 文件中找到的相关对话,例如拉入 Bower 包、缩小图像、browserify、移动、文件、清理等。

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

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

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

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

并且 Heroku 会确保它 运行ning 是我的实例特定的版本。 Bluemix 也一样吗?

非常感谢! 保罗

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

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

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

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