gpt4 book ai didi

linux - NPM/Cordova 权限错误 : EACCES: permission denied, scandir

转载 作者:IT王子 更新时间:2023-10-29 01:11:09 49 4
gpt4 key购买 nike

当我运行 cordova plugin add cordova-plugin-geolocation 时,我收到以下错误。我已尝试在此文件夹上启用 777,将自己设置为所有者等。在这些情况下,我不允许使用 sudo,但我相信如果可以的话,这会解决问题。

Failed to install 'cordova-plugin-geolocation': Error: EACCES: permission denied, scandir '/Users/username/documents/core/myapp/app/platforms/ios/build/device/libCordova.a'
at Error (native)
at Object.fs.readdirSync (fs.js:952:18)
at GlobSync._readdir (/Users/username/documents/core/myapp/app/platforms/ios/cordova/node_modules/glob/sync.js:275:41)
at GlobSync._readdirInGlobStar (/Users/username/documents/core/myapp/app/platforms/ios/cordova/node_modules/glob/sync.js:254:20)
at GlobSync._readdir (/Users/username/documents/core/myapp/app/platforms/ios/cordova/node_modules/glob/sync.js:263:17)
at GlobSync._processReaddir (/Users/username/documents/core/myapp/app/platforms/ios/cordova/node_modules/glob/sync.js:135:22)
at GlobSync._process (/Users/username/documents/core/myapp/app/platforms/ios/cordova/node_modules/glob/sync.js:130:10)
at GlobSync._processGlobStar (/Users/username/documents/core/myapp/app/platforms/ios/cordova/node_modules/glob/sync.js:360:10)
at GlobSync._process (/Users/username/documents/core/myapp/app/platforms/ios/cordova/node_modules/glob/sync.js:128:10)
at GlobSync._processGlobStar (/Users/username/documents/core/myapp/app/platforms/ios/cordova/node_modules/glob/sync.js:363:10)
Error: EACCES: permission denied, scandir '/Users/username/documents/core/myapp/app/platforms/ios/build/device/libCordova.a'

最佳答案

NPM issue's

您可以使用以下三个选项之一解决此问题:

  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.

您应该在继续之前备份您的计算机。

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

1).找到npm目录的路径:

    npm config get prefix

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

警告:如果显示的路径只是/usr,请切换到选项 2,否则您将弄乱您的权限。

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

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

这会更改 npm 和一些其他工具(lib/node_modules、bin 和 share)使用的子文件夹的权限。

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

有时您不想更改 npm 使用的默认目录(即/usr)的所有权,因为这可能会导致一些问题,例如,如果您与其他用户共享系统。

相反,您可以将 npm 配置为使用完全不同的目录。在我们的例子中,这将是我们主文件夹中的一个隐藏目录。

1).为全局安装创建一个目录:

 mkdir ~/.npm-global

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

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

3).打开或创建一个 ~/.profile 文件并添加此行:

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

4).回到命令行,更新你的系统变量:

 source ~/.profile

测试:在不使用 sudo 的情况下全局下载包。

 npm install -g jshint

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

  NPM_CONFIG_PREFIX=~/.npm-global

选项 3:使用包管理器来为您处理此事。

如果您在 Mac OS 上全新安装 node,您可以使用 Homebrew 包管理器完全避免这个问题。 Homebrew 在获得正确许可的情况下开箱即用。

  brew install node

关于linux - NPM/Cordova 权限错误 : EACCES: permission denied, scandir,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45268505/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com