Mac系统下Chrome的--load-extension参数无法正常工作
解决Chrome加载默认目录扩展失败的问题
这问题我之前调试扩展时也碰到过,核心原因基本是Chrome对默认扩展存储目录的权限限制或者命令行路径解析的小坑!
问题根源
Chrome的默认扩展目录(~/Library/Application Support/Google/Chrome/Default/Extensions/)是Chrome自身管理的目录,它会给这个目录设置特殊的权限规则;另外你的命令行路径可能因为转义、~符号展开的问题,导致Chrome无法正确定位到manifest文件。而/tmp是系统全局临时目录,权限宽松且路径解析无阻碍,所以复制过去就能正常加载。
具体解决方案
修正命令行路径解析
原命令里的~/在引号中可能不会被Shell正确展开成绝对路径,建议直接替换成你的用户目录绝对路径试试:/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --load-extension="/Users/你的用户名/Library/Application Support/Google/Chrome/Default/Extensions/cflchafndefoljnhhholeekfpgmbphaf/1.51_0/"注意把
你的用户名换成你实际的Mac用户名(可以用whoami命令快速查看)。检查并修复目录权限
打开终端,先查看目标扩展目录的权限:ls -ld ~/Library/Application\ Support/Google/Chrome/Default/Extensions/cflchafndefoljnhhholeekfpgmbphaf/1.51_0/如果输出里当前用户没有读权限(比如权限列是
drwx------但归属不是你的用户),可以用下面的命令赋予读权限:chmod -R u+r ~/Library/Application\ Support/Google/Chrome/Default/Extensions/cflchafndefoljnhhholeekfpgmbphaf/1.51_0/自动化临时目录加载脚本(可选)
如果上面的方法都不好使,你可以写个小脚本自动复制扩展到临时目录再加载,省得每次手动复制:#!/bin/bash EXT_SOURCE="~/Library/Application Support/Google/Chrome/Default/Extensions/cflchafndefoljnhhholeekfpgmbphaf/1.51_0/" EXT_TEMP="/tmp/loaded-chrome-ext" # 先清空临时目录再复制 rm -rf "$EXT_TEMP" cp -r "$EXT_SOURCE" "$EXT_TEMP" # 启动Chrome加载扩展 /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --load-extension="$EXT_TEMP"保存成
load-ext.sh,然后用chmod +x load-ext.sh赋予执行权限,之后直接运行./load-ext.sh就行。
内容的提问来源于stack exchange,提问作者Katherine Dudo
相关产品推荐
相关产品推荐

