我无法理解如何让 node.js、Grunt 和 NPM 在我的 Vagrant 盒子上运行。我使用的是 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
一切正常。现在的问题是我不知道下一步该怎么做?我以为我可以在“in”时运行 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 如何在 puppet 中处理 nodejs。您需要在 puppet 清单中添加声明并vagrant provision
再次运行。
例子:
class { 'nodejs':
version => 'stable',
}
package { 'express':
provider => npm
}
答案2
定义Vagrantfile
您的配置文件:
config.vm.provision "shell", path: "scripts/provision.sh"
然后package.json
使用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
并查看这是否可以在 VM 配置期间起作用(vagrant up
)。
或者使用其他答案中描述的 Puppet 清单。