nodejs-cookbook
DESCRIPTION
Installs node.js/io.js and manage npm
USAGE
Include the nodejs recipe to install node on your system based on the default installation method:
include_recipe "nodejs"
Engine
You can select different engine by setting node['nodejs']['engine']
node['nodejs']['engine'] => 'node' # default
node['nodejs']['engine'] => 'iojs'
You can also use recipes nodejs::nodejs or nodejs::iojs.
Install methods
Package
Install node from packages:
node['nodejs']['install_method'] = 'package' # Not necessary because it's the default
include_recipe "nodejs"
# Or
include_recipe "nodejs::nodejs_from_package"
Note that only apt (Ubuntu, Debian) appears to have up to date packages available.
Centos, RHEL, etc are non-functional (try nodejs_from_binary for those).
Binary
Install node from official prebuilt binaries:
node['nodejs']['install_method'] = 'binary'
include_recipe "nodejs"
# Or
include_recipe "nodejs::nodejs_from_binary"
Source
Install node from sources:
node['nodejs']['install_method'] = 'source'
include_recipe "nodejs"
# Or
include_recipe "nodejs::nodejs_from_source"
NPM
Npm is included in nodejs installs by default.
By default, we are using it and call it embedded.
Adding recipe nodejs::npm assure you to have npm installed and let you choose install method with node['nodejs']['npm']['install_method']
include_recipe "nodejs::npm"
Warning: This recipe will include the nodejs recipe, which by default includes nodejs::nodejs_from_package if you did not set node['nodejs']['install_method'].
LWRP
nodejs_npm
nodejs_npm let you install npm packages from various sources:
- npm registry:
- name:
attribute :package - version:
attribute :version(optionnal) - url:
attribute :url - for git use
git://{your_repo} - from a json (packages.json by default):
attribute :json - use
truefor default - use a
Stringto specify json file
Packages can be installed globally (by default) or in a directory (by using attribute :path)
You can specify an NPM_TOKEN environment variable for accessing NPM private modules by using attribute :npm_token
You can append more specific options to npm command with attribute :options array :
- use an array of options (w/ dash), they will be added to npm call.
- ex:
['--production','--force']or['--force-latest']
This LWRP attempts to use vanilla npm as much as possible (no custom wrapper).
Packages
nodejs_npm "express"
nodejs_npm "async" do
version "0.6.2"
end
nodejs_npm "request" do
url "github mikeal/request"
end
nodejs_npm "grunt" do
path "/home/random/grunt"
json true
user "random"
end
nodejs_npm "my_private_module" do
path "/home/random/myproject" # The root path to your project, containing a package.json file
json true
npm_token "12345-abcde-e5d4c3b2a1"
user "random"
options ['--production'] # Only install dependencies. Skip devDependencies
end
Or add packages via attributes (which accept the same attributes as the LWRP above):
"nodejs": {
"npm_packages": [
{
"name": "express"
},
{
"name": "async",
"version": "0.6.2"
},
{
"name": "request",
"url": "github mikeal/request"
}
{
"name": "grunt",
"path": "/home/random/grunt",
"json": true,
"user": "random"
}
]
}
AUTHORS
- Marius Ducea (marius@promethost.com)
- Nathan L Smith (nlloyds@gmail.com)
- Guilhem Lettron (guilhem@lettron.fr)
- Barthelemy Vessemont (bvessemont@gmail.com)
