【问题标题】:npm list -g can't work when Nodejs is installed through nvm通过 nvm 安装 Nodejs 时 npm list -g 无法工作
【发布时间】:2021-09-05 02:27:58
【问题描述】:

最近我通过 nvm 重新安装了 Nodejs 和 npm。除了npm list -g 命令外,其他一切都运行良好。当我使用该命令时,它显示的全局包只是 npm 本身:

但实际上,我已经安装了其他许多全局包。我可以在文件夹中找到它们:

另外,让我感到困惑的另一件事是有 2 个 Nodejs 文件夹。一种是:

另一个是:

有什么问题吗?如何使用npm list -g 命令找到全局包?

【问题讨论】:

    标签: node.js npm nvm


    【解决方案1】:

    当你使用 npm 安装一个全局包时,它预装了 Node 的版本,比如 12,当你使用 nvm 将 Node 安装升级到新版本或告诉 nvm 切换到使用不同的 Node 版本时,使用 Node 12 时安装的全局包将不可调用,因为此全局包位于特定于 Node 12 的文件夹中,Node 13 或 Node 10 无权访问该全局包,因此当您切换到不同的 Node手动或通过 nvm 版本,您必须再次安装该全局包。通过 npm 安装的每个 Node 版本都驻留在它们自己的文件夹中,无论您何时执行npm i -g package,这个全局包都会被下载到特定于当前使用的 Node 版本的文件夹中仅

    【讨论】:

    • 但是我只有一个 Nodejs 版本。这是我目前使用的版本。为什么我还是找不到全局包?
    • 是不是和NODE_PATH环境病毒有关系?在使用 nvm 安装 Nodejs 之前,我似乎没有清除它。
    • 您可以通过nvm ls 或nvm list 查看当前使用的Node 版本吗?还有nvm which version_currently_used 可以查看当前使用的Node 的路径。很确定 nvm 将 Node 安装在与您在此处显示的位置不同的位置,通常在 $HOME/.nvm
    • 我使用的节点是v16.6.2,我只安装了这个版本。 nvm which 是什么?我不能使用这个命令。
    • 如果不能调用npm which,不妨试试nvm root,应该可以在nvm root输出的路径中看到一个Node文件夹
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 2021-08-10
    • 1970-01-01
    • 2016-06-14
    • 2017-12-10
    • 2011-09-01
    相关资源
    最近更新 更多