gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 23:09:23 25 4
gpt4 key购买 nike

我正在尝试构建一个开发环境,但 npm 给我带来了问题。这是我的场景:

我有一台运行 Windows 和 VMWare Player 的开发机器。我有一个 Ubuntu Server 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 install 工作正常。所以 npm 在共享目录中安装模块时出现问题。

我认为我可以通过全局安装 Node 包来解决这个问题,但是,无论出于何种原因,GruntJS 爱好者 don't like that并且它必须存在于本地。然后我尝试创建一个从全局到本地的 npm 链接,但这只会导致一个新错误:Error: May not delete:/usr/lib/node_modules/grunt。我对/usr/lib/node_modules 目录和所有子目录拥有完全权限。

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

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

编辑:发布这篇文章后不久,我意识到这里的根本问题 - 当主机操作系统是 Windows 时,无法在 VM 共享目录中创建符号链接(symbolic link)。由于 npm install 默认使用符号链接(symbolic link),因此它不起作用,这就是公认的解决方案起作用的原因。

最佳答案

尝试以下操作:

npm install --no-bin-links

Grunt 应该是本地的,因为插件和 gruntfile.js 可能需要特定版本的 Grunt 才能运行您的任务。如果其他开发人员想要运行您的任务,他们只需发出 npm install 即可设置。 (有关更多信息,请参阅 this。)grunt-cli 是全局的,用于运行本地版本的 grunt

关于node.js - 在 VM 共享目录和 grunt 问题中安装 npm 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25983923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com