在 vagrant virtualbox 上安装 npm

在 vagrant virtualbox 上安装 npm

似乎在解决这个问题上遇到了很多麻烦,但我正在尝试使用 vagrant 并配置一个使用 node / npm 安装依赖项的服务器。我的设置是:

  • ubuntu 12.04 主机(旧开发环境)
  • ubuntu 12.04 客户端(通过 vagrant 创建)
  • 使用 shell provisioner 设置我的服务器 (php 5.3、apache、mysql)
  • 一切都很好,一切都安装好了,直到我得到npm install命令

就我而言,npm install似乎安装所有内容(大量终端输出等...)。配置脚本中的下一行确实grunt someTask如此,我得到了“未找到 grunt 命令”。因此,尽管npm install似乎安装了所有内容,但实际上并没有。

经过研究,发现这似乎是 VirtualBox 和共享文件夹中的符号链接的问题。我添加了:

config.vm.provider "virtualbox" do |vb|
  # Use VBoxManage to customize the VM. For example to change memory:
  vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
  vb.customize ["modifyvm", :id, "--memory", "1024"]

结尾

似乎没有效果。我还尝试使用标志进行安装--no-bin-links,但同样似乎没有效果。有什么想法可以让 npm 正确安装我的项目依赖项吗?非常感谢您的任何意见。

编辑:

这个要点,https://gist.github.com/anonymous/b760fdfa9c204c24424b是我运行 vagrant up 时得到的输出。如您所见,似乎一切都在安装,但是,当我通过 ssh 进入框时,甚至从配置脚本中,我都无法运行“grunt”,因为它说它没有安装。完成后,我的存储库中有一个 node_modules npm install --no-bin-links

答案1

您需要安装,grunt因为它似乎没有被您的配置脚本安装。

要全局安装它,请运行以下命令:

npm install -g grunt-cli

您可以手动运行它,也可以将其添加到您的配置脚本中。

答案2

您是否使用了正确的存储库来安装 NPM?

apt-add-repository ppa:chris-lea/node.js
apt-get update
apt-get install -y nodejs

我曾经在没有这个存储库的情况下安装过 nodejs,并且遇到了很多麻烦,有了这个存储库,我可以在我的 Vagrant Virtual Box 中使用 NPM 安装而不会出现错误。使用 Ubuntu 12.04,试试看。

相关内容