如何将所有节点模块放入同一目录?

时间:2021-01-11 16:37:14

标签: node.js macos npm node-modules nvm

我使用的是 Mac 操作系统。我的大部分全球 npm 模块都位于 /usr/local/lib/node_modules/。我安装了 nvm,现在新的全局模块放置在 /.nvm/versions/node/v15.5.1/lib 中。

我想知道的:

  1. 将它们放在 /.nvm/versions/node/v15.5.1/lib 中是否有任何问题,或者这是您安装 nvm 后所期望的?

  2. 假设我将 node 升级到版本 15.5.2。任何新的全局模块会转到 /.nvm/versions/node/v15.5.2/lib 吗?如果是这样,我添加的全局模块会随着时间的推移最终出现在不同的目录中吗?

  3. 我想从 /usr/local/lib/node_modules/ 中删除所有模块,然后重新安装到新的 nvm 目录中以将所有内容保持在一起。我应该如何处理这个问题?

1 个答案:

答案 0 :(得分:0)

  1. 不,这是意料之中的。
  2. 例如,
  3. nvm install 15 --reinstall-packages-from=14 对您有用。
  4. ls /usr/local/lib/node_modules | xargs npm i -g 将在新位置重新安装所有旧模块。 sudo rm -rf /usr/local/lib/node_modules 将删除旧的。例如,您还可以运行 nvm install node --reinstall-packages-from=node(请参阅 this section in the docs)。

全局模块通常有时被认为是一种反模式,这就是发明 npx 的部分原因——因此您不必处理全局模块变得陈旧和使用 NVM 和其他版本管理器的版本问题。< /p>

相关问题