У меня возникли проблемы с пониманием того, как запустить node.js, Grunt и NPM на моем Vagrant box. Я использую ubuntu-precise12042-x64-vbox43 и подготавливаю его через puppet. Я только начал работать с puppet, поэтому я пошел наhttps://puphpet.comдля генерации манифеста. После того, как vagrant up
ящик подготовлен как надо, и все работает без проблем. Затем я гуглю, чтобы найтиhttps://stackoverflow.com/questions/19000534/install-node-js-on-ubuntu-12-04-lts-using-puppet. Я запустил vagrant SSH
, а затем запустил, puppet module install willdurand/nodejs
и все прошло нормально. Теперь проблема в том, что я не знаю, что делать дальше? Я думал, что смогу запускать команды NPM и Node, находясь "в" vagrant SSH
. Что я делаю не так? Если я просто запущу, NPM
то он скажет:
the program 'npm' is currently not installed. You can install it by typing: sudo apt-get install npm
Мне нужно выполнить какую-то другую команду?
решение1
Простая установка модуля puppet не устанавливает программу, она просто сообщает puppet, как работать с nodejs в puppet. Вам нужно добавить объявление в манифест puppet и запустить vagrant provision
снова.
Пример:
class { 'nodejs':
version => 'stable',
}
package { 'express':
provider => npm
}
решение2
Определите Vagrantfile
свой файл подготовки:
config.vm.provision "shell", path: "scripts/provision.sh"
Затем создайте package.json
for npm
с необходимыми пакетами (например grunt
, ), например:
{
"name": "vagrant",
"devDependencies": {
"grunt": "~0.4.5",
"grunt-cli": "^0.1.13",
"grunt-exec": "^0.4.6",
"shelljs": "^0.5.3"
}
}
Затем в provision.sh
установке npm
и зависимых пакетах через:
apt-get install
npm install
grunt --version
и посмотрим, сработает ли это во время подготовки виртуальной машины ( vagrant up
).
Или используйте манифест Puppet, как описано в другом ответе.