Node.js und Grunt auf einer Vagrant-Box zum Laufen bringen (ubuntu-precise12042-x64-vbox43)

Node.js und Grunt auf einer Vagrant-Box zum Laufen bringen (ubuntu-precise12042-x64-vbox43)

Ich habe Probleme zu verstehen, wie ich node.js, Grunt und NPM auf meiner Vagrant-Box zum Laufen bekomme. Ich verwende ubuntu-precise12042-x64-vbox43 und provisioniere es über Puppet. Ich fange gerade erst mit Puppet an, also ging ich zuhttps://puphpet.comum ein Manifest zu generieren. Nachdem vagrant updie Box wie vorgesehen bereitgestellt wurde und alles problemlos läuft, habe ich dann bei Google nachgeforscht.https://stackoverflow.com/questions/19000534/install-node-js-on-ubuntu-12-04-lts-using-puppet. Ich habe ausgeführt vagrant SSHund danach ausgeführt, puppet module install willdurand/nodejswas gut lief. Jetzt ist das Problem, dass ich nicht weiß, was ich als nächstes tun soll? Ich dachte, ich könnte NPM- und Node-Befehle ausführen, während ich „in“ bin vagrant SSH. Was mache ich falsch? Wenn ich einfach ausführe, NPMheißt es:

the program 'npm' is currently not installed. You can install it by typing: sudo apt-get install npm

Muss ich einen anderen Befehl ausführen?

Antwort1

Durch die bloße Installation des Puppet-Moduls wird das Programm nicht installiert, sondern Puppet wird lediglich mitgeteilt, wie es mit NodeJS in Puppet umgehen soll. Sie müssen Ihrem Puppet-Manifest eine Deklaration hinzufügen und es vagrant provisionerneut ausführen.

Beispiel:

class { 'nodejs':
  version => 'stable',
}

package { 'express':
  provider => npm
}

Antwort2

Definieren Sie VagrantfileIhre Bereitstellungsdatei:

config.vm.provision "shell", path: "scripts/provision.sh"

Erstellen Sie dann package.jsonfür npmmit den erforderlichen Paketen (zB grunt) wie:

{
  "name": "vagrant",
  "devDependencies": {
    "grunt": "~0.4.5",
    "grunt-cli": "^0.1.13",
    "grunt-exec": "^0.4.6",
    "shelljs": "^0.5.3"
  }
}

Dann in provision.shinstallieren npmund abhängige Pakete über:

apt-get install
npm install
grunt --version

und prüfen Sie, ob das während der VM-Bereitstellung funktioniert ( vagrant up).

Oder verwenden Sie das Puppet-Manifest, wie in der anderen Antwort beschrieben.

verwandte Informationen