【问题标题】:Global Node Packages Installed to Wrong Directory安装到错误目录的全局节点包
【发布时间】:2016-11-11 04:46:53
【问题描述】:

我正在尝试使用 npm 全局安装 Hexo。当我跑 npm install -g hexo-cli 我被告知它已安装到/Users/myusername/.node/bin/hexo -> /Users/myusername/.node/lib/node_modules/hexo-cli/bin/hexo

当我运行hexo init blog 并且找不到 hexo 命令时,问题就出现了。

我用 Homebrew 安装了 Node 和 npm,所以当我运行 which nodewhich npm 时,结果分别是 /usr/local/bin/node/usr/local/bin/npm

我在想,我在安装没有自制程序的 Node 时仍然有剩余的文件和目录,但我不想在不完全了解后果的情况下开始删除东西。我可以安全地删除位于/Users/myusername/.node/ 目录中的所有文件吗?我不明白为什么 npm 没有安装到正确的目录。

【问题讨论】:

    标签: node.js terminal npm homebrew hexo


    【解决方案1】:

    经过一番挖掘,我发现我的 npm 前缀变量指向了错误的目录,是旧的 Node 安装留下的。我跑了npm config get prefix 看看它指向哪里。

    我使用npm config set prefix /usr/local 设置了新的前缀值。 Homebrew 通过/usr/local/bin 与此目录进行符号链接。我卸载了hexo-cli,通过npm重新安装,现在完美运行了。

    【讨论】:

    • 我遇到了一个奇怪的问题,通常会出现在node_modules/bin 中的东西最终会出现在我的项目根目录中。一个简单的npm config delete prefix 为我解决了这个问题,谢谢! (不知道前缀来自哪里)
    【解决方案2】:

    对于 NVM 用户

    运行 nvm use --delete-prefix v10.13.0 --silentv10.13.0 替换为您正在使用的任何版本的节点。

    【讨论】:

      【解决方案3】:

      在 Windows 上处理环境变量/路径问题的简单方法:

      运行命令:

      npm install -g hexo 
      

      使用 node.js 命令提示符,而不是 Windows 本身提供的cmd windows。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-05-02
        • 1970-01-01
        • 2019-08-01
        • 2020-05-25
        • 1970-01-01
        • 2023-04-05
        • 1970-01-01
        相关资源
        最近更新 更多