平台默认会根据源码根目录是否有package.json
来识别为NodeJS项目.
package.json
文件中的script.start
值来生成启动配置文件;在此步骤中,你需要提供一个可用的NodeJS源码程序用来部署在Rainbond平台上,此应用程序至少需要满足如下条件:
package.json
,用来管理NodeJS项目的依赖,也是Rainbond识别为NodeJS语言的必要条件如果项目未定义Procfile文件,平台会根据package.json
文件中的script.start
值来生成默认Procfile。
web: npm start
上述是默认Procfile,如果需要扩展更多启动参数,可以自定义Procfile。
当前Rainbond支持Node如下版本为:
4.9.1
5.12.0
6.14.4
7.10.1
8.12.0
9.11.2
10.13.0
11.1.0
平台默认版本使用8.12.0
。可以在 package.json
里使用 engines 指定版本:
{
"name": "myapp",
"description": "a really cool app",
"version": "0.0.1",
"engines": {
"node": "4.8.7"
}
}
0.8.5 之后的版本包括 0.11.13 也是支持的,以下是使用 0.11.x 版本的例子:
{
"engines": {
"node": "0.11.x"
}
}
Node项目支持使用npm package manager 和 yarn package manager 安装依赖包,如果存在yarn.lock
文件,使用yarn(默认支持版本1.9.4)安装依赖和运行脚本,否则使用npm。
yarn定义方式
{
"engines": {
"yarn": "1.9.4"
}
}
如果您的应用在构建时需要执行额外的操作,可以在 package.json
的 scripts
节点下添加 postinstall
脚本,该脚本会在 buildpack 执行完 npm install —production
后自动执行,可参考package.json
示例:
{
"name": "node-hello",
"version": "0.0.1",
"description": "nodejs demo",
"dependencies" : {
"bower": "~1.3.9",
"grunt-cli": "~0.1.13",
},
"scripts": {
"start": "node index.js",
"test": "mocha",
"postinstall": "bower install && grunt build"
},
"engines": {
"node": "9.3.0"
}
}