错误: EACCES: 权限被拒绝

下面是错误消息。

npm ERR! tar.unpack untar error /home/rupesh/.npm/lodash/4.13.1/package.tgz
npm ERR! Linux 3.13.0-88-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "lodash"
npm ERR! node v4.3.1
npm ERR! npm  v2.14.12
npm ERR! path /home/rupesh/node_modules/lodash
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir


npm ERR! Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack:
npm ERR!    [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53',
npm ERR!      'FSReqWrap.oncomplete (fs.js:82:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.


npm ERR! Please include the following file with any support request:
npm ERR!     /home/rupesh/Desktop/es6/npm-debug.log
495607 次浏览
Npm ERR! fstream _ path:’/home/rupesh/node _ module/loash’, Fstream _ class: ‘ DirWriter’,

目录 /home/rupesh/node_modules/没有创建目录的必要权限,所以运行 chown -r rupesh:rupesh /home/rupesh/node_modules/应该可以解决这个问题。

使用 Npm init创建 包裹 Json解决了我的问题。

从你发布的日志来看:

npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_class: 'DirWriter',

目录 /home/rupesh/node_modules/没有创建目录的必要权限,所以运行 chown -r rupesh:rupesh /home/rupesh/node_modules/应该可以解决这个问题。

路径:’/home/rupesh/node _ module/loash’, Fstream _ type: ‘ Directory’,

FWIW 我有相同的症状,但是不同的包装。创建 package.json并运行 npm init确实解决了我的问题。

Npm ERR! fstream _ path:’/home/rupesh/node _ module/loash’, Fstream _ class: ‘ DirWriter’,

目录 /home/rupesh/node_modules/没有创建目录的必要权限,所以运行 chown -r rupesh:rupesh /home/rupesh/node_modules/应该可以解决这个问题。

第一次在 root 上安装时没有-g (global)。在尝试使用-g (global)之后,它对我起作用了。

解决方案是在不同的位置运行 npm install app,而不使用根 umask。

G > 2. npm config set prefix '~/.npm-global'

打开或创建一个 ~/. profile 文件并添加以下代码行:

我有同样的问题与 webpack 服务器安装在全球,使用步骤从 这个 Url解决了我的问题,我是为你工作。

3. export PATH=~/.npm-global/bin:$PATH

上面提到的步骤有:

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

启动前备份计算机。

为全局安装建立一个目录:

4. source ~/.profile

1. mkdir ~/.npm-global

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

测试: 下载一个包 在全局范围内不使用 sudo

npm install -g jshint

2. npm config set prefix '~/.npm-global'

打开或创建一个 ~/. profile 文件并添加以下代码行:

3. export PATH=~/.npm-global/bin:$PATH

取代步骤2-4,你可以使用相应的 ENV 变量(例如,如果你不想修改 ~/. profile) :

NPM_CONFIG_PREFIX=~/.npm-global

1. mkdir ~/.npm-global

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

我在 Linux 上遇到了问题,我写了

chown -R myUserName /home/myusername/myfolder

2. npm config set prefix '~/.npm-global'

打开或创建一个 ~/. profile 文件并添加以下代码行:

3. export PATH=~/.npm-global/bin:$PATH

在我的项目文件夹里。

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

4. source ~/.profile

测试: 下载一个包 在全局范围内不使用 sudo

npm install -g jshint

取代步骤2-4,你可以使用相应的 ENV 变量(例如,如果你不想修改 ~/. profile) :

NPM_CONFIG_PREFIX=~/.npm-global

警告: 这是 没有修复它的正确方法; 不要运行它,如果你不确定会有什么后果。

这个命令解决了这个问题,它对我很有效:

sudo npm install -g --unsafe-perm=true --allow-root

对我来说就像施了魔法一样。但是这里有一个安全漏洞,就是你的全局包目录可以被所有级别访问。

这直接解决了我的问题-mac Mojave 10.14.6-PhpStorm。

我通过更改 npm 目录的权限解决了这个问题。我查了 npm 的全球目录

/home/<user-name>

我通过输入这个命令进入这个目录

cd /home/<user-name>

然后通过输入以下命令更改. npm 文件夹的权限。

sudo chmod -R 777 ".npm"

对我来说就像施了魔法一样。但是这里有一个安全漏洞,就是你的全局包目录可以被所有级别访问。

一起跑

sudo npm install lodash

下面是针对 GNU/Linux (Debian)用户的解决方案(用 你的用户名替换 用户名) :

sudo chown -R $USER:$(id -gn $USER) /home/USERNAME/.config


LUBUNTU 19.10/相同的问题运行: $npm start

Abel 7.4.0. development.json’

弃置: OpenSync (fs.js: 646:18) 错误: EACCES: 权限拒绝,打开’/home/simon/xxx/pageBuilder/resources/script/register/node _ module/. cache/@babel/register/. babel. 7.4.0. development.json’ 在 Object.fs.writeFileSync (fs.js: 1299:33) OpenSync (fs.js: 646:18) 在 Object.fs.writeFileSync (fs.js: 1299:33) 在 save (/home/simon/xxx/pageBuilder/resources/script/register/node _ module/@babel/register/lib/cache. js: 52:15) 在 save (/home/simon/xxx/pageBuilder/resources/script/register/node _ module/@babel/register/lib/cache. js: 52:15) At _ binedTickCallback (Internal/process/next _ tick. js: 132:7) At _ binedTickCallback (Internal/process/next _ tick. js: 132:7) At process. _ tickCallback (Internal/process/next _ tick. js: 181:9) At process. _ tickCallback (Internal/process/next _ tick. js: 181:9) RunMain (module.js: 696:11) RunMain (module.js: 696:11) (/home/simon/xxxx/pageBuilder/resources/script/register/node _ module/@babel/node/lib/_ babel-node. js: 234:23) (/home/simon/xxxx/pageBuilder/resources/script/register/node _ module/@babel/node/lib/_ babel-node. js: 234:23) 在 Module. _ edit (Module.js: 653:30) 在 Module. _ edit (Module.js: 653:30) At Object. Module. _ ext. . js (Module.js: 664:10) At Object. Module. _ ext. . js (Module.js: 664:10) 在 Module.load (module.js: 566:32)

在 Module.load (module.js: 566:32)

看起来我的默认用户(管理员)对节点模块目录没有权限。

看起来我的默认用户(管理员)对节点模块目录没有权限。

这东西帮我修好了!

$ sudo chmod a+w node_modules -R ## from project root

$ sudo chmod a+w node_modules -R ## from project root

试着用这个:

在 Windows 上,结果是端口已经被 IIS 使用。

在命令行的主目录中,为全局安装创建一个目录:

mkdir ~/.npm-global

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

npm config set prefix '~/.npm-global'

在首选的文本编辑器中,打开或创建一个 ~/. profile 文件,并添加以下代码行:

export PATH=~/.npm-global/bin:$PATH

在命令行上,更新系统变量:

source ~/.profile

停止 IIS (右键单击,退出) ,解决了问题。

在不使用 sudo 的情况下测试全局安装软件包,希望有所帮助

在首选的文本编辑器中,打开或创建一个 ~/. profile 文件,并添加以下代码行:

export PATH=~/.npm-global/bin:$PATH

在命令行上,更新系统变量:

source ~/.profile

在不使用 sudo 的情况下测试全局安装软件包,希望有所帮助

在 AWS EC2机器上,下面的工作原理如下:

sudo chown -R $(whoami) /home/ubuntu/.cache
sudo chown -R $(whoami) /home/ubuntu/.config
sudo chown -R $(whoami) /home/ubuntu/.local
sudo chown -R $(whoami) /home/ubuntu/.npm
sudo chown -R $(whoami) /home/ubuntu/.pm2

希望能帮上忙。

只需将全局 node_modules目录的所有者更改为您的用户:

sudo chown -R $USER:$GROUP /usr/local/lib/node_modules

我尝试了大多数这些建议,但没有一个奏效。然后我运行 npm clean-install,它解决了我的问题。

Node 建议执行以下步骤:

 sudo chown -R $USER:$(id -gn $USER) /home/venkatesh/.config
如果你执行

npm config

如果你执行

npm config

你会看到这样的东西

│                   npm update check failed                   │
│             Try running with sudo or get access             │
│            to the local update config store via             │
│ sudo chown -R $USER:$(id -gn $USER) /home/venkatesh/.config │

你会看到这样的东西

│                   npm update check failed                   │
│             Try running with sudo or get access             │
│            to the local update config store via             │
│ sudo chown -R $USER:$(id -gn $USER) /home/venkatesh/.config │

这招对我很管用。

Node 建议执行以下步骤:

 sudo chown -R $USER:$(id -gn $USER) /home/venkatesh/.config

如果你执行

npm config

你会看到这样的东西

│                   npm update check failed                   │
│             Try running with sudo or get access             │
│            to the local update config store via             │
│ sudo chown -R $USER:$(id -gn $USER) /home/venkatesh/.config │

如果出现如下错误

Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/<PackageName>/vendor'

这招对我很管用。

我建议使用下面的命令来安装您的全局软件包

sudo npm install -g <PackageName> --unsafe-perm=true --allow-root

作为管理员打开 CMD (本例中为 Windows WSl) ,我使用的是 NodeJS Version 14.15.1

在尝试了各种方法之后,我关注了 NPM 的这段视频。 Com/embed/bxvybxYFq2o”rel = “ nofollow norefrer”> https://www.youtube.com/embed/bxvybxYFq2o

我顺利解决了!

说明如下(在老 Mac 上) :

    Https://www.youtube.com/embed/bxvybxyfq2o

    说明如下(在老 Mac 上) :

    1. 在终端中,在用户目录中,创建此文件夹 mkdir .npm-global。这将是所有全局 NPM 安装的新文件夹,而不是默认文件夹。有权限问题的 npm。
    2. cd .npm-global/
    3. 在终端中,在用户目录中,创建此文件夹 mkdir .npm-global。这将是所有全局 NPM 安装的新文件夹,而不是默认文件夹。有权限问题的 npm。
    4. cd .npm-global/
    5. 运行 npm config set prefix /Users/your_user/.npm-global
    6. 运行 npm config set prefix /Users/your_user/.npm-global
    7. 设置系统的 Path 以知道在哪里可以找到包: 运行 vi ~/.profile。如果没有这个文件,请先运行 touch ~/.profile,然后再运行 vi ~/.profile。在最上面写 export PATH=/Users/your_user/.npm-global/bin:$PATH。您也可以使用文本编辑器打开这个文件(因为它是一个隐藏文件,所以使用 SHIFT + CMD + 。表现出来)。
    8. 设置系统的 Path 以知道在哪里可以找到包: 运行 vi ~/.profile。如果没有这个文件,请先运行 touch ~/.profile,然后再运行 vi ~/.profile。在最上面写 export PATH=/Users/your_user/.npm-global/bin:$PATH。您也可以使用文本编辑器打开这个文件(因为它是一个隐藏文件,所以使用 SHIFT + CMD + 。表现出来)。
    9. 回到终端,在/. npm-global 文件夹中,运行 source ~/.profile
  1. 回到终端,在/. npm-global 文件夹中,运行 source ~/.profile

现在,您应该已经准备好在全局范围内安装您的软件包了。

现在,您应该已经准备好在全局范围内安装您的软件包了。

然而,上面的方法似乎不适用于新的操作系统,比如 BigSure。

这应该能解决:

sudo chown -R `whoami` ~/.npm
sudo chown -R `whoami` /usr/local/lib/node_modules

现在,您应该已经准备好在全局范围内安装您的软件包了。

然而,上面的方法似乎不适用于新的操作系统,比如 BigSure。

这应该能解决:

sudo chown -R `whoami` ~/.npm
sudo chown -R `whoami` /usr/local/lib/node_modules

使当前用户成为 /usr/local/bin文件夹的所有者。对此文件夹的权限是个麻烦。

安装 nvm 然后使用节点版本 curl -sL https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh -o install_nvm.sh nvm use 14 安装节点 v14的版本 现在您可以删除/删除 node _ module 文件夹和包锁定。Json 文件,并使用 npm install重新安装软件包,现在应该没问题了

nvm install 14

我在运行 Bigsur 11.4的 Mac 上尝试了上面的一些答案,但是没有成功。但真正起作用的是在 npmjs 文档网站上发布的以下说明。 然后使用节点版本 Https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

nvm use 14

拒绝的权限错误在所有 chown命令之后仍然存在。然而,更新 npm sudo npm install -g npm@8.3.2并改变到 PATH="$PATH"的路径对我来说很有用。

安装节点 v14的版本 nvm install 14 然后使用节点版本

如何在禁用 JavaScript 滚动功能的网站上快速、普遍地重新启用滚动功能?(因为实际上有内容可以滚动浏览。)

nvm use 14 现在您可以删除/删除 node _ module 文件夹和包锁定。Json 文件,并使用 npm install重新安装软件包,现在应该没问题了