Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何解决;sudo npm安装“安装”;关于MacOS的问题_Node.js_Macos_Npm_Installation_Sudo - Fatal编程技术网

Node.js 如何解决;sudo npm安装“安装”;关于MacOS的问题

Node.js 如何解决;sudo npm安装“安装”;关于MacOS的问题,node.js,macos,npm,installation,sudo,Node.js,Macos,Npm,Installation,Sudo,不久前,我尝试在Mac上使用sudo npm install更新npm, 所以更新不起作用,现在我无法运行任何npm项目。 在这个问题之后,我试图解决它,在npm论坛上搜索一些答案,我发现了一个讨论,其中一个开发者说“永远不要使用sudo npm安装,尤其是在MacOS上”。 所以我的问题是 如果可能,如何在不格式化电脑的情况下解决此问题 为什么将sudo与npm命令一起使用是个坏主意? 很抱歉我的英语不好,但我努力做到最好。 感谢您的耐心。我写了一篇关于这个问题的文章,还介绍了一些不用sud

不久前,我尝试在Mac上使用
sudo npm install
更新npm, 所以更新不起作用,现在我无法运行任何npm项目。 在这个问题之后,我试图解决它,在npm论坛上搜索一些答案,我发现了一个讨论,其中一个开发者说“永远不要使用
sudo npm安装,尤其是在MacOS上”。
所以我的问题是

  • 如果可能,如何在不格式化电脑的情况下解决此问题
  • 为什么将sudo与npm命令一起使用是个坏主意?

  • 很抱歉我的英语不好,但我努力做到最好。
    感谢您的耐心。

    我写了一篇关于这个问题的文章,还介绍了一些不用
    sudo
    管理node/npm版本的解决方案:

    我将在这里总结一下

    首先,如果您使用的是MacOS,我强烈建议您使用来安装system node,如果您还没有这样做的话。您应该能够运行
    brew安装节点
    (该节点还将安装
    npm
    warn
    ),而无需使用sudo,前提是您已正确完成了自制设置

    如果您想管理多个版本的Node,我强烈推荐将其作为一种工具
    nvm
    也很流行,但我更喜欢
    n
    。我在文章中介绍了如何安装和管理
    n
    ,但也有人创建了一个工具来帮助您完成这一过程:

    您还可以查看一下,以帮助您解决过去运行
    sudo npm install
    可能遇到的问题。您可以在项目中尝试
    sudo rm-rf node_模块
    ,然后安装
    npm
    (不带sudo)

    类似地,如果全局安装了前缀错误的节点模块,您可能必须执行类似于
    sudo rm-rf$(npm prefix-g)/{bin,lib/node_modules}
    的操作。请注意,这将删除您以前使用sudo安装的库,因此您必须再次安装它们


    除了您遇到的问题之外,您不应该使用
    sudo npm
    任何东西的一个关键原因是
    npm
    命令(包括
    install
    命令)能够运行任意脚本,包括从注册表下载的脚本。你不想给运行任意脚本的东西授予根权限

    @Miladrezadeh你后悔跑哪个指挥部?万一你否决了我的答案,也许有一个误解我可以澄清。