似乎在解决这个问题上遇到了很多麻烦,但我正在尝试使用 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,试试看。