【发布时间】:2013-09-03 01:40:11
【问题描述】:
现在要使用 Google Chrome 扩展程序页面创建扩展程序,我们选择一个包含已创建扩展程序的目录并生成 .crx 文件。
问题在于它包含此目录中的所有文件 - 例如,所有文档、资产草稿等。
是否可以创建一些黑名单来忽略*.psd, *.pdf, docs/* ...等指定文件?
【问题讨论】:
-
只打开crx文件并删除其中的一些内容?
现在要使用 Google Chrome 扩展程序页面创建扩展程序,我们选择一个包含已创建扩展程序的目录并生成 .crx 文件。
问题在于它包含此目录中的所有文件 - 例如,所有文档、资产草稿等。
是否可以创建一些黑名单来忽略*.psd, *.pdf, docs/* ...等指定文件?
【问题讨论】:
我创建了一个.crxignore 自定义忽略文件,如下所示:
.*
Makefile
*.md
bin
它是为 zip 命令制作的!它不同于
.gitignore。您不能添加 cmets,例如!请参阅文档:https://linux.die.net/man/1/zip,查找--exclude字词。
现在您可以创建一个没有忽略文件的 zip:
$ zip -qr -9 -X .out/out.zip . -x@.crxignore
# ^^^^^^^^^^^^^ using ignore file
之后,我可以使用以下 go 脚本将 zip 转换为 crx 文件:https://github.com/mmadfox/go-crx3 你必须使用 go build -o out/crx3 crx3/main.go 命令构建它(你可能会丢失 mod 错误,但会有你想要的命令必须运行)。 --> 您可以将out/crx3 移动到您想要的位置。例如:[project]/bin/crx3.
我没试过,也许
chrome命令也可以将zip转换成crx。
你必须生成一个私钥:
$ bin/crx3 keygen .out/key.pem
Makefile
build:
rm -f .out/out.zip
zip -qr -9 -X .out/out.zip . -x@.crxignore
bin/crx3 pack .out/out.zip -p .out/key.pem -o .out/out.crx
构建过程:
$ make build
# --> build the .out/out.crx file
【讨论】:
Chromium 团队决定not to implement a manifest (or similar mechanism) for including only the desired files in a .CRX。
推荐的工作流程是在dist 目录中建立一个仅输出所需文件的构建步骤,并从该目录创建 CRX。这是common practice for JavaScript libraries。
【讨论】:
尝试命令行程序“zip”,如果您使用的是 Windows,则可以在 cygwin 中找到,或者可能存在于 OSX 上,如果您使用的是 linux,则易于安装。
zip package.zip -r * -x package.sh -x *.git* -x "*.*~" -x "*.pdf" docs/* "*.psd"
【讨论】:
zip -r packaged.zip src/*.js src/manifest.json img/*.png img/*.jpg。然而,问题似乎真的是关于创建.crx 文件,这些文件有点像 zip 文件,但不完全是。看来您必须使用chrome://extensions 或\chrome.exe --enable-apps --pack- extension=<path\to\app\folder> 来执行此操作。无论哪种方式,都不要让您选择想要的文件和不想要的文件。 @hsz,您需要编写自己的脚本并移动文件。