【问题标题】:Create Google Chrome extension package without specified files创建没有指定文件的谷歌浏览器扩展包
【发布时间】:2013-09-03 01:40:11
【问题描述】:

现在要使用 Google Chrome 扩展程序页面创建扩展程序,我们选择一个包含已创建扩展程序的目录并生成 .crx 文件。

问题在于它包含此目录中的所有文件 - 例如,所有文档、资产草稿等。

是否可以创建一些黑名单来忽略*.psd, *.pdf, docs/* ...等指定文件?

【问题讨论】:

  • 只打开crx文件并删除其中的一些内容?

标签: google-chrome-extension


【解决方案1】:

我的解决方案

我创建了一个.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

【讨论】:

    【解决方案2】:

    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

    【讨论】:

      【解决方案3】:

      尝试命令行程序“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,您需要编写自己的脚本并移动文件。
      • .CRX files are special, signed, ZIP archives,包含作者的公钥和扩展签名。简单地压缩一些文件不会创建那种 ZIP 存档。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-17
      • 2014-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多