Node.js 在VM共享目录中安装npm模块和grunt问题

Node.js 在VM共享目录中安装npm模块和grunt问题,node.js,gruntjs,npm,vmware,Node.js,Gruntjs,Npm,Vmware,我正试图建立一个开发环境,而npm给我带来了问题。以下是我的设想: 我有一台运行Windows和VMWare Player的开发机器。我有一个Ubuntu服务器VM(没有UI),它配置了Apache、PHP、NodeJS等。由于VM没有UI,我想使用主机操作系统进行开发。我设置了一个共享目录,在VM中作为/mnt/hgfs/source/访问 当我尝试在此目录中运行npm install时,问题就出现了。我看到很多错误,比如Error:UNKNOWN,symlink'../requirejs/b

我正试图建立一个开发环境,而npm给我带来了问题。以下是我的设想:

我有一台运行Windows和VMWare Player的开发机器。我有一个Ubuntu服务器VM(没有UI),它配置了Apache、PHP、NodeJS等。由于VM没有UI,我想使用主机操作系统进行开发。我设置了一个共享目录,在VM中作为/mnt/hgfs/source/访问

当我尝试在此目录中运行
npm install
时,问题就出现了。我看到很多错误,比如
Error:UNKNOWN,symlink'../requirejs/bin/r.js'
。我知道我的package.json文件没有问题,因为如果我将所有文件从共享中复制到一个普通的unix目录(/var/www/)
npm安装
就可以了。因此,npm在共享目录中安装模块时遇到问题

我想我可以通过在全球范围内安装节点包来解决这个问题,但不管出于什么原因,GruntJS爱好者和它必须在本地安装。然后,我尝试创建一个从全局到本地的npm链接,但这只会导致一个新错误:
错误:可能无法删除:/usr/lib/node\u modules/grunt
。我对/usr/lib/node_modules目录和所有子目录拥有完全权限

我真的不想在VM中使用命令行文本编辑器编写整个项目,但看起来我无法通过VMWare将代码库放在主机和来宾操作系统都可用的目录中

我非常感谢任何关于如何1)允许npm模块安装在我的共享目录中,2)全局运行Grunt,或3)解决我看到的npm链接错误的建议

编辑:发布这篇文章后不久,我意识到了这里的一个基本问题——当主机操作系统是Windows时,不可能在VM共享目录中创建符号链接。由于npm安装在默认情况下使用符号链接,因此无法运行,这就是为什么接受的解决方案可以运行。

请尝试以下操作:

npm install --no-bin-links
Grunt应该是本地的,因为插件和
grunfile.js
可能需要特定版本的Grunt才能运行任务。如果其他开发人员希望运行您的任务,他们可以发出
npm安装
,然后进行设置。(有关更多信息,请参阅。)
grunt cli
是全局的,用于运行本地版本的
grunt

完美<代码>--没有bin链接成功了,谢谢。我已经充分认识到在本地安装模块的优点,但这在我以前的方法中是不可能的。不过现在一切都好了。