【问题标题】:git bash cannot find module npm-cli.jsgit bash 找不到模块 npm-cli.js
【发布时间】:2019-09-27 22:11:30
【问题描述】:
$ npm install
module.js:471
    throw err;
    ^

Error: Cannot find module 'C:\c\Program Files\nodejs\node_modules\npm\bin\npm-cli.js'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:394:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:509:3
module.js:471
    throw err;
    ^

Error: Cannot find module 'C:\c\Program Files\nodejs\node_modules\npm\bin\npm-cli.js'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:394:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:509:3

我注意到了这个

C:\c\Program Files\

我认为路径被覆盖了,我已经在我的环境变量中设置了路径

当我做node -V 时,NodeJs 运行良好,当我做 npm -V 时它崩溃了我该如何解决这个问题

PS:我使用的是 Windows 10 专业版

【问题讨论】:

  • 你的 PATH 设置是什么? (echo $PATH)
  • 不确定这与 git 或 bash 有什么关系,如果您从 Windows 附带的命令提示符处运行 npm,您能否检查它是否崩溃并出现相同的错误?
  • 是的,我已经在 power shell 中对其进行了测试,它工作得很好,但由于某些原因我也需要修复和 git bash

标签: node.js git bash npm


【解决方案1】:

Program Files\nodejs\npm 中,node.exe 被执行并且不是节点脚本,因此,git-bashnpm-cli.js 的路径转换为Windows 路径。

npm Version: 3.10.10
Platform: MINGW64_NT-6.1 2.5.0(0.295/5/3) 2016-03-31 18:47 x86_64 Msys

当我在 git bash 中运行 npm (/c/Program Files/nodejs/npm) 时(使用 MINGW) npm 脚本抛出:错误:找不到模块'C:\c\Program 文件\nodejs\node_modules\npm\bin\npm-cli.js'

问题是npm shell脚本执行了一个窗口node.exe 但为它提供了 npm-cli.js 的 unix 路径。

正如我所见,修复方法是使用 cygpath 为 MINGW 转换路径 以及 /c/Program Files/nodejs/npm 第 6-8 行:

case `uname` in
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
    *MINGW*) basedir=`cygpath -w "$basedir"`;;
esac

阅读NPM issue #18499 on GitHub了解更多信息。

【讨论】:

    【解决方案2】:

    我找到了解决方案,这是由于这个变量位于环境变量中:

    MSYS_NO_PATHCONV=1

    我不知道为什么会发生这种冲突,无论如何如果我找到它我会更新我的答案

    【讨论】:

      【解决方案3】:

      您应该安装唯一的 LTS 版本的节点 https://nodejs.org/en/

      【讨论】:

      • 是LTS版本有这个问题!
      【解决方案4】:

      如果您已经重新安装了 Node.Js,并且之前您已经在环境变量中设置了节点路径,那么您应该将其删除,然后它将起作用

      【讨论】:

        猜你喜欢
        • 2017-02-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-22
        • 1970-01-01
        • 2014-09-03
        相关资源
        最近更新 更多