npm无法找到模块

4
我已经在Google和StackOverflow上浏览了各种相关问题的线程,但到目前为止都没有解决我的问题。我的问题是npm似乎安装失败了……或者说有些问题,老实说我不知道:Node和npm是我用来支持Sage Wordpress主题构建的依赖项,我正在另一台机器上进行此工作。
因此,问题是,在卸载Node(为了保险起见)并重新安装后,Node似乎运行正常。node -v返回v5.1.0。很好。它应该带着npm安装,但当我运行npm -v时,出现以下错误:
    $ npm
    module.js:340
        throw err;
        ^

    Error: Cannot find module 'readable-stream'
        at Function.Module._resolveFilename (module.js:338:15)
        at Function.Module._load (module.js:289:25)
        at Module.require (module.js:366:17)
        at require (module.js:385:17)
        at Object.<anonymous>                 (/Users/Daniel/.nvm/versions/node/v5.1.0/lib/node_modules/npm/node_modules/        npmlog/node_modules/are-we-there-yet/index.js:2:14)
        at Module._compile (module.js:425:26)
        at Object.Module._extensions..js (module.js:432:10)
        at Module.load (module.js:356:32)
        at Function.Module._load (module.js:313:12)
        at Module.require (module.js:366:17)

运行任何npm命令(甚至只是npm)都会给我返回这个错误,因此按照其他解决方案的建议,我不能简单地运行npm install readable-stream。我已经尝试了各种解决方案(删除node_modules文件夹,通过brew安装,通过brew无npm安装等),但似乎都不起作用。
非常感谢您的帮助和想法。

在重新安装之前,你运行了 npm cache-clean 吗? - adeneo
@adeneo 否定的。让我再试一次。 - DanielNordby
你在此链接中的回答表明你在提问之前应该进行一些研究。 - DinhNguyen
根据我的问题,@DinhNC提供的方法不可行。我肯定看过那篇帖子,但它没有解决我的问题。 - DanielNordby
你是否曾经运行过这条命令 "npm install gulp -g"? - DinhNguyen
显示剩余2条评论
3个回答

5
我刚刚在Mac上遇到了这个问题,因为npm更新失败,我花了半个小时的时间来解决它。我使用Homebrew,发现我需要执行以下操作:sudo chown -Rv $USER /usr/local/lib/node_modules/ 并将我的用户名添加进去。然后,我通过Homebrew重新安装了node:brew uninstall nodebrew install node。此时,npm又可以正常工作了,我成功地进行了npm i -g npm

4
如果您在使用NPM时遇到问题,并且想要在UNIX上重新安装,我发现以下方法是最简单的解决方案: curl -L https://npmjs.org/install.sh | sudo sh 这将重新安装NPM并设置为使用最新的NPM版本。这几乎总是可以解决与NPM相关的任何问题。
当过程完成后,您应该会收到一个显示“它已经工作了”的消息。

这段代码到底是在做什么?当我运行这一行(复制/粘贴到终端中)时,我得到以下输出:% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 193 100 193 0 0 305 0 --:--:-- --:--:-- --:--:-- 305 sh: line 1: html: 没有那个文件或目录 sh: line 2: syntax error near unexpected token < ' h: line 2: <head><title>301 Moved Permanently</title></head> - DanielNordby
这将会去 NPM 并从他们的网站安装最新版本。在调用 curl 时确保有 -L 标志,这将跟随 301 重定向。 - peteb
所以,他们的代码中可能有语法错误吗?另外,似乎还存在301问题... - DanielNordby
更新了我的答案,为了避免任何权限问题,在调用 sh 前添加 sudo - peteb
嗯,我可能是个白痴,或者我运行了一些其他不起作用的代码变体。我确实以类似的方式多次重新安装了npm,但使用你的片段解决了我的问题。感谢您一直以来的耐心帮助! - DanielNordby

0

您可以通过以下命令行运行:

npm install // you need remove node_modules folder, run npm install

也许你正在使用Mac OS?你可以运行以下命令: "rm -rf node_modules" => "rm -rf ~/.npm" => "npm install" - DinhNguyen
有时候,完全卸载npm并重新安装node后,它就能正常工作了。 - DinhNguyen
是的,我在OSX上,但删除node_modules文件夹并重新安装并没有起作用。 - DanielNordby

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接