您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页npm文档fix_npm_permission

npm文档fix_npm_permission

来源:二三四教育网

Fixing npm permissions

修补npm权限


You may receive an EACCES
error when you try to install a package globally. This indicates that you do not have permission to write to the directories that npm uses to store global packages and commands.

当你在全局安装一个包时,你可能会收到一个EACCES错误。这表明,你没有被允许写一个,npm用来存储全局包和命令的路径。

You can fix this problem using one of three options:
1.Change the permission to npm's default directory.
2.Change npm's default directory to another directory.
3.Install node with a package manager that takes care of this for you.
You should back-up your computer before moving forward.

你可以通过如下三个方法中的一个,来修复这个问题:

  1. 修改npm默认目录的权限。
  2. 修改npm的默认目录到其他目录。
  3. 安装带有一个包管理器的node,它会罩着你的。
    你应该在进行下一步前,让你的电脑进行备份。

Option 1: Change the permission to npm's default directory

  1. Find the path to npm's directory:
    npm config get prefix
    For many systems, this will be /usr/local.
    WARNING: If the displayed path is just /usr
    , switch to Option 2 or you will mess up your permissions.
  2. Change the owner of npm's directories to the name of the current user (your username!):
    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
    This changes the permissions of the sub-folders used by npm and some other tools (lib/node_modules, bin
    , and share).

选项一:修改npm默认路径的权限

  1. 找到npm目录的路径:
    npm config get prefix
    对于很多系统,路径会是/usr/local
    注意:如果显示的路径是/usr, 切换到选项二,否则你会把你的权限搞得一团糟。
  2. 将npm目录的所有者改为当前用户的名字(你的名字):
    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
    这将会改变npm的子目录和其他工具((lib/node_modules, bin, and share).)的权限。

Option 2: Change npm's default directory to another directory

There are times when you do not want to change ownership of the default directory that npm uses (i.e. /usr) as this could cause some problems, for example if you are sharing the system with other users.

Instead, you can configure npm to use a different directory altogether. In our case, this will be a hidden directory in our home folder.

1.Make a directory for global installations:
mkdir ~/.npm-global
2.Configure npm to use the new directory path:
npm config set prefix '~/.npm-global'
3.Open or create a ~/.profile file and add this line:
export PATH=~/.npm-global/bin:$PATH
4.Back on the command line, update your system variables:
source ~/.profile

Test: Download a package globally without using sudo.
npm install -g jshint
Instead of steps 2-4 you can also use the corresponding ENV variable (e.g. if you don't want to modify ~/.profile
):
NPM_CONFIG_PREFIX=~/.npm-global

选项二:修改npm的默认目录到其他目录

当你不想修改npm的默认目录的所有权时(比如 /usr),因为这会引发一些问题,比如如果你正在与其他用户分享这个系统。

作为替代,你可以根据你的情况配置npm使用其他目录,这个目录回事我们的home文件夹下的一个隐藏目录。

  1. 创建一个全局安装的默认路径:
    mkdir ~/.npm-global
  2. 配置npm到新目录的路径:
    npm config set prefix '~/.npm-global'
  3. 代开或创建~/配置文件并且加上这一行:
    export PATH=~/.npm-global/bin:$PATH
  4. 返回命令行,升级你的系统变量:
    source ~/.profile

测试:不用sudo全局地下载一个包:
npm install -g jshint
不使用步骤2到4,你也可以使用相应的ENV变量(比如,如果你不想修改~/.profile)
NPM_CONFIG_PREFIX=~/.npm-global

Option 3: Use a package manager that takes care of this for you.

选项三:使用一个会解决这个问题的包管理器

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务