- 如何部署 Node.js 应用
- 应用检测
- 环境依赖
- 使用特定版本的 Node.js
- 示例 package.json
- 自定义构建
- 默认应用类型
- 运行任务
如何部署 Node.js 应用
Flynn 使用 Heroku Node.js 构建包来支持 Node.js 应用。
应用检测
当应用的目录里包含package.json文件时,Flynn 就会使用 Node.js 构建包。
环境依赖
Flynn 使用npm管理依赖。npm读取package.json文件的dependencies属性里的定义,它是一个简单的键值对象,软件包的名称是键名,对应可用版本的范围。
使用特定版本的 Node.js
可以在package.json文件的engines节(section)里定义 Node.js 版本。它使用 semver.io 来解析 Node.js 的版本,支持诸如:0.8.x,>0.4,>=0.8.5 <-0.8.14之类格式的查询。Node.js 的构建包支持 0.8.5 之后的版本,包含开发版。
示例 package.json
{ "name": "node-example", "version": "0.0.1", "dependencies": { "express": "4.10.0", "stylus": "0.49.2" }, "devDependencies": { "grunt": "0.4.5" }, "engines": { "node": "0.10.x", "npm": "1.2.x" }}
自定义构建
有些应用在部署前需要额外的处理步骤,这时可以增加一个 npm postinstall脚本。它会在npm install —production后执行,生产环境下也是可用的。注意,构建工具不会自动安装devDependencies里的软件包,如果你需要安装其中的软件,就把它移到dependencies里。
默认应用类型
Node.js 应用在部署时可以没有Procfile文件。如果没有Procfile,构建工具会查找package.json里的scripts.start定义的脚本,然后以默认的web应用类型使用npm start启动此脚本。
运行任务
另外,npm,node等都在系统的path环境变量里,可以直接通过flynn run运行:
$ flynn run node -vv0.10.32
原文: http://doc.oschina.net/flynn?t=54098
