• 如何部署 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

    1. {
    2. "name": "node-example",
    3. "version": "0.0.1",
    4. "dependencies": {
    5. "express": "4.10.0",
    6. "stylus": "0.49.2"
    7. },
    8. "devDependencies": {
    9. "grunt": "0.4.5"
    10. },
    11. "engines": {
    12. "node": "0.10.x",
    13. "npm": "1.2.x"
    14. }
    15. }

    自定义构建

    有些应用在部署前需要额外的处理步骤,这时可以增加一个 npm postinstall脚本。它会在npm install —production后执行,生产环境下也是可用的。注意,构建工具不会自动安装devDependencies里的软件包,如果你需要安装其中的软件,就把它移到dependencies里。

    默认应用类型

    Node.js 应用在部署时可以没有Procfile文件。如果没有Procfile,构建工具会查找package.json里的scripts.start定义的脚本,然后以默认的web应用类型使用npm start启动此脚本。

    运行任务

    另外,npmnode等都在系统的path环境变量里,可以直接通过flynn run运行:

    1. $ flynn run node -v
    2. v0.10.32

    原文: http://doc.oschina.net/flynn?t=54098