NVM 全局模块文件夹

Posted

技术标签:

【中文标题】NVM 全局模块文件夹【英文标题】:NVM global module folder 【发布时间】:2016-02-22 09:54:37 【问题描述】:

我正在使用 NVM,我正在尝试安装全局 NPM 模块。该操作需要对我无权访问的文件夹的权限。使用常规的 node.js/npm 很容易通过 prefix 配置解决,但 NVM 明确禁止它。

在 NVM 中更改全局模块文件夹路径的正确方法是什么?

【问题讨论】:

默认情况下,nvm 不会自行安装在您的主文件夹中吗? 不,对于全局模块,它会尝试访问 /usr/local/bin/ 以创建指向可执行文件的符号链接。 在没有-g的情况下安装它,你就有node_modules/.bin可以使用 你试过 sudo chown +R $user $directory 吗? 【参考方案1】:

要查看您正在使用的当前节点版本的位置:

nvm which current

如果 .nvm 不在路径中,则您正在使用系统安装,类似于以下内容:

/usr/local/bin/node

切换到由 nvm 管理的版本:

nvm use 4

验证您使用的是由 nvm 管理的版本:

nvm which current

您应该会看到类似于以下内容的内容:

/Users/<your-user-name>/.nvm/versions/node/v4.2.2/bin/node

您应该只在使用系统安装时遇到全局安装权限问题。

【讨论】:

是上述解决方案仍然与当前不适用于 gitbash 或 cmd 提示符的 nvm 相关。我有一种情况,我使用 nvm 安装了 8.12.0 并删除了以前没有 nvm 安装的 8.9.2,如果我检查全局包列表它只显示 npm 并且路径是 /c/Program Files/nodejs/npm 我以前的全局包location /c/Users/Charlie/AppData/Roaming/npm/eslint 有没有办法将旧的全局文件位置映射到新安装的 npm(使用 nvm) 通过向 .npmrc 添加前缀来修复 prefix=C:\Users\Charlie\AppData\Roaming\npm nvm use node 而不是nvm use 4 了解export NODE_PATH=$(realpath $(dirname $(nvm which current))/../lib/node_modules)也很有用

以上是关于NVM 全局模块文件夹的主要内容,如果未能解决你的问题,请参考以下文章

mac中nvm的安装和使用

mac中nvm的安装和使用

自己安装的node nvm识别吗

windows下使用nvm-windows做nodejs版本管理

每次目录中有 .nvmrc 文件时自动运行 `nvm use`

安装nvm后再安装yarn,报'yarn' 不是内部或外部命令