首页 文章

使用npm命令时找不到模块'npmlog'错误消息

提问于
浏览
30

今天是我第一份工作的第一天,通过在我的Mac(OSX)上更新节点和npm来设置我的开发环境后,我似乎已经破坏了一些东西 . 每次我尝试在命令行中使用npm(npm init,npm install等)时都会收到以下错误消息:

module.js:339 throw err;错误:无法在Module.require的Function.Module._load(module.js:287:25)的Function.Module._resolveFilename(module.js:337:15)中找到模块'npmlog'(module.js:366:17) )在object的/usr/local/lib/node_modules/npm/bin/npm-cli.js:20:13的require(module.js:385:17) . (/usr/local/lib/node_modules/npm/bin/npm->cli.js:76:3)在Module._compile(module.js:425:26)的Object.Module._extensions..js(模块 . js:432:10)在Function.Module._load的Module.load(module.js:356:32)(module.js:311:12)

没有太多的错误消息要发布,堆栈跟踪也没有帮助我 . 这是我尝试过的:

  • 搜索了Stackoverflow,虽然有类似的问题,人们已经能够使用 npm <something> 来解决他们的问题,这是我无法做到的 .

  • 卸载并重新安装npm - Didn 't work because I can' t完全使用npm命令,所以像 sudo npm uninstall npm -g 这样的东西不起作用 .

  • .npm 目录中删除了 npmlog 目录,然后再次将github repo直接克隆到该目录 .

希望你们中的一个人之前遇到过这个问题,或者想知道如何处理它 . 任何帮助表示赞赏 .

10 回答

  • 3

    这是一个很好的链接Fixing npm On Mac OS X for Homebrew Users .

    尝试在mac下升级 node.js 时使用以下命令

    rm -rf / usr / local / lib / node_modules
    brew卸载节点
    brew安装节点--without-npm
    echo prefix =〜/ .npm-packages >>〜/ .npmrc
    curl -L https://www.npmjs.com/install.sh | sudo sh

  • 9

    以下是适合我的步骤:

    $ sudo rm -rf /usr/local/bin/npm
    $ sudo rm -rf /usr/local/lib/node_modules/npm
    $ brew uninstall node
    $ brew install node
    
  • 0

    尝试使用 curl -0 -L http://npmjs.org/install.sh | sudo sh 来关注重定向 . 另请注意,我在sudo sh命令之前添加了sudo,具体取决于您的用户权限 .

  • 5

    我刚刚在Mac上遇到过这个问题,经过仔细检查,在我看来问题是在Node应用程序目录中的某些情况下 node/bin 目录中 npm 中的 npm 中的链接被文件本身替换了是它失败的原因(以及为什么所有各种脚本方法都修复它,因为它们正确地保留了文件链接) .

    如果我使用 cpnode-v6.9.4-darwin-x64 复制内容然后我遇到了这个问题,但是如果我使用Finder复制文件,那么我没有 . 因此,您可以通过手动重新创建 ln 链接来修复它,如果您不想使用Finder(或者, mvrsync -a 也可以工作;我还没有测试过它们) .

    希望这有助于有人来这里解决这个问题 .

    编辑:我've just accidentally found the reason for the problem on Macs (for my particular scenario, at any rate): I'总是使用 cp -r 来复制目录 . 这是因为我老了,不再学习新东西了 . 正确的方法是 cp -R ,它可以正确复制所有内容 .

  • 17

    我不一定只是重新开始问题.860511_问题 . 我用这篇文章这样做:How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)

    如果其他人知道如何实际解决问题或知道我做了什么导致它,我仍然会非常感兴趣 .

  • 17

    在我的情况下,我只是 brew uninstall node 并从官方网站下载并为我工作

  • 3

    我在运行 sudo npm install npm -g 之后在Fedora 27上点击了这个 .

    问题是我最初通过 sudo dnf install nodejs 安装了Node.js,它将npm安装到 /usr/local/bin/usr/local/lib . 但运行 sudo npm install/usr/bin/ 中安装单独的版本

    运行 which npm 显示已安装额外的npm . 然后以下为我清理了一切:

    $ sudo rm /usr/bin/npm
    $ sudo rm -rf /usr/lib/node_modules/npm
    $ dnf remove -y nodejs
    $ dnf install -y nodejs
    
  • 0

    我遇到了同样的错误 . 这是在未连接到互联网的服务器上 . 我在Github上看过一个线程,提到有时在执行复制或其他文件操作时可以删除符号链接 . 所以我在节点目录上对有问题的服务器的符号链接进行了“查找”,找不到任何符号链接 . 在工作服务器上执行相同操作时发现了符号链接文件 .

    我去了 NODE_HOME/bin 做了 ls -l

    果然我有一个npm文件 . 在工作服务器上执行相同的步骤,npm文件是一个符号链接 . 为了修复有问题的服务器,我执行了以下操作:

    rm npm

    ln -s ../lib/node_modules/npm/bin/npm-cli.js npm

  • 3

    在REDHAT linux中安装量角器时出现了同样的错误

    npm

    归档于

    /node-v6.10.2-linux-x64/bin/npm

    对于模块路径如下:

    代码之前

    var log = require('npmlog')
    

    代码之后

    var log = require('/node-v6.10.2-linux-x64/lib/node_modules/npm/node_modules/npmlog')
    
  • 0

    对我来说,我运行了 brew uninstall node 然后从nodejs.org下载了最新版本并且它运行了 .

相关问题