Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
npmjs
Ruby Shell
Branch: master
Pull request Compare This branch is 134 commits ahead of mdxp:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
attributes
files/default
libraries
providers
recipes
resources
test
.gitignore
.kitchen.yml
.rubocop.yml
.travis.yml
Berksfile
CHANGELOG.md
Gemfile
README.md
Rakefile
chefignore
metadata.rb

README.md

nodejs-cookbook

CK Version Build Status Gitter chat

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 true for default
    • use a String to specify json file

Packages can be installed globally (by default) or in a directory (by using attribute :path)

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 try to use npm bare 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

Working Examples

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

Something went wrong with that request. Please try again.