Node.js &引用;请以Root/Administrator身份再次尝试运行此命令";尝试安装较少的时出错

Node.js &引用;请以Root/Administrator身份再次尝试运行此命令";尝试安装较少的时出错,node.js,linux,less,Node.js,Linux,Less,我正在尝试在我的计算机上安装较少的节点,并且已经安装了节点。然而,当我输入“node install-g less”时,我得到了以下错误,并且不确定该怎么办 FPaulMAC:bin paul$ npm install -g less npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/less' npm ERR! { [Error: EACCES, unlink '/usr/local/lib/node_modules/le

我正在尝试在我的计算机上安装较少的节点,并且已经安装了节点。然而,当我输入“node install-g less”时,我得到了以下错误,并且不确定该怎么办

FPaulMAC:bin paul$ npm install -g less
npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR!  { [Error: EACCES, unlink '/usr/local/lib/node_modules/less']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/less' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 13.3.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "less"
npm ERR! cwd /usr/local/bin
npm ERR! node -v v0.10.33
npm ERR! npm -v 1.4.28
npm ERR! path /usr/local/lib/node_modules/less
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR! error rolling back  { [Error: EACCES, unlink '/usr/local/lib/node_modules/less']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/less' }
npm ERR! not ok code 0

老实说,这是npm的坏建议。安装可以运行任意脚本,使用
sudo
运行它可能非常危险!您可以通过
sudo npm install-g less
进行全局安装,但我建议您更新npm设置:

#~/.npmrc
prefix=~/.npm_modules
然后您可以更新您的路径:

#~/.bashrc or ~/.zshrc, etc.
export PATH=$PATH:$HOME/.npm_modules/bin
然后,您不需要root权限来执行安装,您仍然可以使用二进制文件

但是,这只适用于您的用户。如果您希望整个系统能够使用该模块,则必须告诉所有人添加您的路径。更复杂、更健壮的解决方案包括添加一个文件夹,其中包含一个组可以安装的节点模块/二进制文件,并将其添加到每个人的路径中。

Re Explosion Pills“安装可以运行任意脚本,而使用sudo运行它可能非常危险!”

似乎使用sudo是错误的做法

“将/usr/local文件夹中文件的所有者更改为当前用户:”

然后运行安装程序

node install -g less
退房:


只需在命令开头加上
sudo
。 如前所述,安装运行一些脚本可能会很危险,但我发现全局安装非常有帮助,而且更简单


运行
sudo npm install-g less

这是我开始使用less编译器时必须做的事情,以避免OP中提到的问题:

  • 安装
  • 使用终端安装NPM:
    sudo NPM安装NPM-g
  • 使用以下终端安装Less编译器:
    sudo npm Install-g Less
    (sudo带来了所有的不同)
  • 如果您使用的是PHPstorm:请转到“首选项…>插件”并安装 NodeJS插件(可能需要“浏览存储库”才能找到它)并重新启动PHPstorm(根据提示)
  • 在这之后,再次转到插件:安装更少的编译器(可能) 需要“浏览存储库”以找到它)并重新启动PHPstorm(如有必要) (提示)
  • 设置项目后,请转到“设置>工具> “Filewatchers”并添加“Less”。(程序的)路径应该是这样的 此:
    /usr/local/bin/lessc
  • 确保在设置6中选中“仅跟踪根文件”

  • npm有一个官方页面,关于您何时收到EACCES(错误:Access)错误。该页面甚至有一个视频

    您可以使用以下两个选项之一修复此问题:

  • 将权限更改为npm的默认目录
  • 将npm的默认目录更改为另一个目录

  • 在我的例子中,我需要从5.3.0更新npm版本→ 5.4.2

    在我可以使用这个
    --npm i-g npm
    之前。。我需要运行两个命令,这两个命令完美地解决了我的问题。它很可能会解决你的问题

    第1步:
    sudo chown-R$USER/usr/local

    第2步:
    npm安装-g cordova ionic

    在此之后,您应该将npm更新为最新版本

    第三步:
    npm i-g npm

    那你就可以走了。希望这能解决你的问题。
    干杯

    我也遇到了这个问题。这就是我所做的:

  • 从控制面板>卸载程序卸载节点
  • 用户//appData/漫游-->npm文件夹和npm缓存文件夹中有2个文件夹。删除这两项

  • 现在,转到nodeJS站点,再次安装。选择安装选项(即npm包)中的第二个选项。安装它。你们的问题现在必须解决

    这肯定会有帮助。由npm自己回答。

    为了方便您,下面是从URL中提取的


    选项1:将权限更改为npm的默认目录

  • 查找npm目录的路径:

    npm配置获取前缀

  • 对于许多系统,这将是/usr/local

    警告:如果显示的路径为just/usr,请切换到选项2或选择 将破坏您的权限

  • 将npm目录的所有者更改为当前用户的名称(您的用户名!):

    sudo chown-R$(whoami)$(npm-config-get-prefix)/{lib/node_-modules,bin,share}

  • 这将更改npm和其他一些工具(lib/node_模块、bin和share)使用的子文件夹的权限


    选项2:将npm的默认目录更改为另一个目录

  • 为全局安装创建目录:

    mkdir~/.npm global

  • 配置npm以使用新的目录路径:

    npm配置集前缀“~/.npm global”

  • 打开或创建~/.profile文件并添加此行:

    导出路径=~/.npm全局/bin:$PATH

  • 返回命令行,更新系统变量:

    source~/.profile

  • 测试:不使用sudo全局下载包

    `npm install -g jshint`
    
    代替步骤2-4,您可以使用相应的ENV变量(例如,如果您不想修改
    ~/.profile
    ):

    NPM\u配置\u前缀=~/.NPM全局


    选项3:使用软件包管理器为您解决此问题

    如果要在Mac OS上重新安装Node,可以使用自制软件包管理器完全避免此问题。自制软件使用正确的权限进行开箱即用的设置


    brew安装节点

    我一直遇到这个问题,因为windows将我的
    node\u modules
    文件夹设置为只读。确保取消选中此选项

    我知道这是一个老问题,但没有一个解决方案是一个好的做法,因此我
    `npm install -g jshint`