【问题标题】:Share implementation files among Chrome (packaged) Apps?在 Chrome(打包)应用程序之间共享实现文件?
【发布时间】:2013-10-07 22:50:14
【问题描述】:

我有几个共享各种资源(CSS、JavaScript 等)的 Chrome 应用程序,但似乎所有组成文件都必须位于应用程序文件夹中。我不想将这些文件放在服务器上,因为我希望应用程序完全独立。我尝试了 OS X 别名,但 Chrome 系统无法在

显然,我不想维护这些文件的多个副本,因为其中一些在开发过程中经常更改。

除了编写一个在每次文件更改时运行的预处理器之外还有什么想法吗?它将使用一个名为 files.json 的文件,其中列出了文件夹或其子文件夹中尚未包含的资产。

【问题讨论】:

    标签: javascript google-chrome-app


    【解决方案1】:

    我们目前对“共享模块”提供实验性支持,其中一个扩展程序或应用程序可以依赖于一组其他程序。依赖项只是提供可以加载到依赖它们的应用程序/扩展中的文件;他们不能拥有自己的任何权限或功能(如背景页面)。在安装依赖于共享模块的应用程序/扩展程序时,我们会自动从 chrome 网上商店下载并安装任何缺少的依赖项,如果您卸载所有依赖于它们的应用程序/扩展程序,我们会在以后删除它们。

    目前该功能仅在 chrome 的开发通道中可用,但我们打算在有机会获得开发者反馈时全力支持它。如果您想尝试一下,请获取chrome dev channel (or canary) 的副本。

    在 manifest.json 中用于扩展,它只是您要共享的文件包:

    {
      ...
    
      "export": {
        "resources": [ "foo.js", "bar.js" ]
      },
    
      ...
    }
    

    在想要依赖上述内容的扩展程序/应用程序的 manifest.json 中:

    {
      ...
    
      "import": [{"id": "<id of dependency goes here>"}],
    
      ...
    }
    

    有关更多示例,请参阅此 codereview 中的测试数据文件:

    https://codereview.chromium.org/13971005

    (抱歉,我们还没有很好的文档;我们最终会的)

    试一试,并将一些反馈发送至 extensions-dev@chromium.org 或 apps-dev@chromium.org。

    【讨论】:

    • 我忘了提到,在安装依赖于共享模块的应用程序/扩展程序时,我们会自动从 chrome 网上商店下载并安装任何缺少的依赖项,如果您卸载,我们会在以后删除它们所有依赖于它们的应用程序/扩展程序。
    【解决方案2】:

    通常这些是通过包管理器完成的。您可以使用 bower 添加一些本地 git 依赖项。或者,如果您只是想在每次目标文件更改时将文件复制到您的文件夹,您可以使用 Grunt 任务运行器和 Watch 任务。

    【讨论】:

      【解决方案3】:

      当我说“编写预处理器”时,我夸大了需要做的事情。 jusio 的解决方案我猜是可行的,但我做了一些更简单的事情,这个脚本从 BBEdit 内部运行:

      #! /bin/sh
      cd /Users/marc/Documents/Dropbox/dev/chrome
      rsync -vrt lib NoteTree
      open '/Applications/Chrome Apps.localized/Default nnlinebecgjceggljgcnfploamgnjjhl.app'
      

      这会复制更改的文件,然后调用 Chrome 应用程序。如果它已经在运行(通常是在开发过程中),我只需右键单击并选择 Reload App。这是一个非常快速的编辑和测试周期。

      (说明:/Users/marc/Documents/Dropbox/dev/chrome 是我开发的父文件夹,子文件夹 lib 包含公共文件,NoteTree 是我目前正在开发的应用程序。)

      【讨论】:

      • 这大致就是我们在 Chrome 应用团队所做的工作。我们的大多数应用程序都很小,因为我们的主要目标是开发应用程序平台,而不是应用程序本身。如果我们正在开发一套大型相关应用程序,我们可能会想出更强大的东西。
      • 感谢您提供此信息!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-25
      • 1970-01-01
      • 2020-06-08
      相关资源
      最近更新 更多