我有一个令人兴奋的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是否相同?
非常感谢! 保罗
答案 0 :(得分:7)
在Bluemix中,运行npm install
命令来安装依赖项。这将启动grunt heroku
部分中的postinstall
任务。请注意,您的devDependencies
将不会被下载。如果您的grunt任务需要它们,则可能需要将它们移动到dependencies
部分。
是的,您推送的整个应用程序存储库将在Bluemix上复制,类似于Heroku。
您现在可以在package.json
中指定节点和NPM引擎。
<强>过时:强> 您当然可以指定节点引擎,就像您在示例中所拥有的一样。但是,NPM版本目前不可配置,而是由Node.js运行时中打包的内容提供。