当我运行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'
答案 0 :(得分:9)
您可以使用以下三个选项中的一个来解决此问题:
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上重新安装节点,则可以使用Homebrew软件包管理器完全避免此问题。 Homebrew使用正确的权限开箱即用。
brew install node
答案 1 :(得分:0)
对于 Mac 用户,如果您正在寻找快速答案,则可以编辑位于with test_data as(
select date'2020-08-01' dt, '123 street' loc from dual
union all
select date '2020-08-01', '89 street' from dual
union all
select date '2020-08-02', '456 airport' from dual
union all
select date '2020-08-04', '456 airport' from dual
union all
select date '2020-08-05', '67 street' from dual
union all
select date '2020-08-06', '89 street' from dual
union all
select date '2020-08-07', '123 street' from dual
)
select *
from test_data
match_recognize (
order by dt
all rows per match
pattern (equal{1,})
define
equal as loc = prev(loc)
);
的{{1}}文件夹的权限。
.npm
父文件夹(以防止在错误的位置运行第二个命令)。/Users/$(whoami)/.npm
.npm
文件夹的权限。$ cd /Users/$(whoami)
这就是我解决案件的方式。
答案 2 :(得分:0)
如果其他人使用 sudo 无法修复的 Mac 科尔多瓦环境,这是我唯一的解决方案(经过很多痛苦之后):