【发布时间】:2020-08-14 16:07:37
【问题描述】:
我有一台 Mac Book Pro 和我的操作系统 MacOS。我正在使用 ionic 进行编码,并且必须将所有命令与 SUDO 一起使用。我不想这样做。
ionic cordova platform rm ios
> cordova platform remove ios
/usr/local/lib/node_modules/cordova/node_modules/conf/node_modules/write-file-atomic/index.js:236
throw err
^
Error: EACCES: permission denied, open '/Users/kalemmacbookpro/Library/Preferences/insight-nodejs/insight-cordova.json.1908726309'
at Object.openSync (fs.js:458:3)
at Function.writeFileSync [as sync] (/usr/local/lib/node_modules/cordova/node_modules/conf/node_modules/write-file-atomic/index.js:212:13)
at Conf.set store [as store] (/usr/local/lib/node_modules/cordova/node_modules/conf/index.js:142:19)
at new Conf (/usr/local/lib/node_modules/cordova/node_modules/conf/index.js:44:14)
at new Insight (/usr/local/lib/node_modules/cordova/node_modules/insight/lib/index.js:40:35)
at new RelentlessInsight (/usr/local/lib/node_modules/cordova/src/telemetry.js:31:1)
at Object.<anonymous> (/usr/local/lib/node_modules/cordova/src/telemetry.js:39:15)
at Module._compile (internal/modules/cjs/loader.js:1138:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
at Module.load (internal/modules/cjs/loader.js:986:32) {
errno: -13,
syscall: 'open',
code: 'EACCES',
path: '/Users/kalemmacbookpro/Library/Preferences/insight-nodejs/insight-cordova.json.1908726309'
}
[ERROR] An error occurred while running subprocess cordova.
cordova platform remove ios exited with exit code 1.
Re-running this command with the --verbose flag may provide more information.
但如果我将此代码与 SUDO 一起使用,一切正常。如何在没有 SUDO 的情况下使用所有离子代码?
【问题讨论】:
-
你能检查它说你没有访问权限的文件的所有权吗?文件或包含目录之一是否由 root 或不是您的用户拥有,并且您的用户的权限受限?
-
我已设置文件所有权和权限
-
你设置了什么文件,你把它们设置成什么?我不熟悉 ionic,但这听起来像是一个问题,其中一些文件具有不适当的权限(可能由 root 拥有,而不是您的用户拥有),因此您必须以 root 身份运行它(使用
sudo)才能获得访问它们,因此它创建的任何新文件都归 root 所有,随着越来越多的文件归 root 而不是你所有,随着时间的推移,整个问题变得越来越严重。这意味着您可能需要设置所有相关文件的所有权。
标签: macos ionic-framework ionic4