如果在安装 npm 的各种包时,总是需要 sudo 才能完成安装的话,那是因为你的 npm 包安装目录的权限问题,你可以通过下面两种方式的任何一种解决:

方法一:修改 npm 默认安装目录的权限

  1. 找到 npm 默认安装目录:

    npm config get prefix

    很多系统都应该是 /usr/local ,如果目录是 /usr 的话,请不要使用此方法,改用方法二。

  2. 将该目录的所有者改成当前用户即可(就是你啦):

    sudo chown -R `whoami` <directory>

如果你不想修改目录的权限,你可以单独修改下面这些子目录即可:

  • lib/node_modules
  • bin
  • share

方法二:修改 npm 默认的安装目录至另一个目录

很多时候,可能因为各种各样的原因,你并不想或者根本就不能修改默认目录的所有者,那么,改变 npm 的默认安装目录将是最好的选择了:

  1. 创建一个新的目录,比如下面这样:

    make ~/.npm-global
  2. 设置 npm 使用刚才新建的目录:

    npm config set prefix '~/.npm-global'
  3. 创建或者打开现有的 ~/.profile 文件,添加下面这一行:

    export PATH=~/.npm-glopbal/bin:$PATH
  4. 保存之后返回至命令行,更新系统变量:

    source ~/.profile

现在你可以直接通过下面这行命令全局安装一下 jshint 试试。

npm install -g jshint

标签: npm, osx

评论已关闭