让 node.js 和 grunt 在 Vagrant box (ubuntu-precise12042-x64-vbox43) 上运行

让 node.js 和 grunt 在 Vagrant box (ubuntu-precise12042-x64-vbox43) 上运行

我无法理解如何让 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 清单。

相关内容