Defined Type: psick::nodejs::npm

Defined in:
manifests/nodejs/npm.pp

Overview

Parameters:

  • user (String)
  • package_name (String) (defaults to: $title)
  • nvm_dir (Optional[String]) (defaults to: undef)
  • version (Optional[String]) (defaults to: undef)
  • npm_params (String) (defaults to: '-g')
  • nvm_env (String) (defaults to: 'default')


2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'manifests/nodejs/npm.pp', line 2

define psick::nodejs::npm (
  String $user,
  String $package_name      = $title,
  Optional[String] $nvm_dir = undef,
  Optional[String] $version = undef,
  String $npm_params        = '-g',
  String $nvm_env           = 'default',
) {
  if $nvm_dir == undef {
    $final_nvm_dir = $user ? {
      'root'  => '/root',
      default => "/home/${user}",
    }
  }
  else {
    $final_nvm_dir = $nvm_dir
  }

  $full_package_name = $version ? {
    undef   => $package_name,
    default => "${package_name}@${version}",
  }
  exec { "npm install ${full_package_name}":
    cwd         => $final_nvm_dir,
    command     => ". ${final_nvm_dir}/.nvm/nvm.sh && nvm exec ${nvm_env} npm install ${full_package_name} ${npm_params}",
    user        => $user,
    environment => ["NVM_DIR=${final_nvm_dir}/.nvm"],
    unless      => ". ${final_nvm_dir}/.nvm/nvm.sh && nvm exec ${nvm_env} npm ls ${full_package_name} -g",
    provider    => shell,
  }
}