Obtendo node.js e grunt para rodar na caixa Vagrant (ubuntu-precise12042-x64-vbox43)

Obtendo node.js e grunt para rodar na caixa Vagrant (ubuntu-precise12042-x64-vbox43)

Estou tendo problemas para entender como fazer com que node.js, Grunt e NPM sejam executados em minha caixa Vagrant. Estou usando o ubuntu-precise12042-x64-vbox43 e provisionando-o através do fantoche. Estou apenas começando com fantoches, então fuihttps://puphppet.compara gerar um manifesto. Depois que vagrant upa caixa for provisionada como deveria e tudo estiver funcionando sem problemas. Eu então pesquiso no Google para encontrarhttps://stackoverflow.com/questions/19000534/install-node-js-on-ubuntu-12-04-lts-using-puppet. Corri vagrant SSHe depois corri, puppet module install willdurand/nodejso que correu bem. Agora o problema é que não sei o que fazer a seguir? Achei que seria capaz de executar comandos NPM e Node enquanto "in" vagrant SSH. O que estou fazendo de errado? Se eu executar apenas NPMdiz:

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

Preciso executar algum outro comando?

Responder1

Apenas instalar o módulo puppet não instala o programa, apenas diz ao puppet como lidar com nodejs no puppet. Você precisa adicionar uma declaração ao manifesto do seu fantoche e executá-lo vagrant provisionnovamente.

Exemplo:

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

package { 'express':
  provider => npm
}

Responder2

Em Vagrantfiledefina seu arquivo de provisionamento:

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

Em seguida, crie package.jsonfor npmcom os pacotes necessários (por exemplo grunt), como:

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

Em seguida, em pacotes provision.shde instalação npme dependentes via:

apt-get install
npm install
grunt --version

e veja se isso funcionaria durante o provisionamento da VM ( vagrant up).

Ou use o manifesto Puppet conforme descrito na outra resposta.

informação relacionada