ember.js - 使用ember manifest插件

时间:2016-03-14 16:14:20

标签: ember.js ember-cli cache-manifest ember-cli-addons

我希望在我的ember应用程序中有一个清单,因为我想在移动设备上使用它并具有一些离线功能。

我找到了插件ember-cli-deploy-manifest: https://github.com/ember-cli-deploy/ember-cli-deploy-manifest 它在自述文件中有详细记载,看起来很有希望。

但是如何使用插件?

我已使用此命令安装它:

ember install ember-cli-deploy-manifest

我使用此命令构建我的应用程序:

ember build -prod

未创建任何清单。我可能错过了一些简单的步骤,但无法弄明白。如何告诉ember build使用插件?

更新

我按照以下答案的评论中的建议。我使用manifest-plugin删除并手动创建了一个清单文件。然后,挑战是在清单文件中获得正确的指纹文件名。

在我的ember-cli-build.js文件中,我有:

module.exports = function(defaults) {
    var app = new EmberApp(defaults, {
      fingerprint: {
        exclude: [],
        extensions: ['js', 'css', 'png', 'jpg', 'gif', 'map'],
        replaceExtensions: ['html','css','js', 'appcache']
      }
    });
 ...

我的清单文件名为eea.appcache,位于/ public文件夹中。它在构建期间被复制到dist-folder。 但是,文件的内容(文件名列表)不是指纹。其他文件(html,css,js)中的文件名被正确指纹识别。

这是我的public/eea.appcache:

CACHE MANIFEST
# 2016-03-15
# V 1.0

CACHE:
index.html
assets/vendor.css
assets/eea.css
assets/vendor.js
assets/eea.js
assets/img/Icon120x120.png

我的目标仍然是:

ember build -prod

如何获取使用MD5指纹更新的表格文件中的文件名?

2 个答案:

答案 0 :(得分:0)

ember-cli-deploy-manifest适用于ember-cli-deploy

因此,一旦安装了ember deploy,就需要运行ember deploy -production

安装ember-cli-deploy

ember install ember-cli-deploy

然后

ember deploy -production

答案 1 :(得分:0)

我终于得到了它的工作,但这个解决方案真的是hack'ish。 我通过反复试验来解决这个问题。

broccoli-assets-rev在分析文件以查找文件名时有一些棘手的规则。清单文件中通常使用的格式,解析器找不到文件名。

但是如果文件的注释中列出了带引号的文件并且使用了正确的路径,那么它将起作用。 如果清单文件位于公用文件夹的根目录中,它将最终位于网页的根目录中。然后路径如下。

我的文件如下:

CACHE MANIFEST
# 2016-03-15
# V 1.1
# '
# 'assets/vendor.css'
# 'assets/eea.css'
# 'assets/vendor.js'
# 'assets/eea.js'
# 'assets/img/Icon120x120.png'

CACHE:
index.html
assets/vendor.css
assets/eea.css
assets/vendor.js
assets/eea.js
assets/img/Icon120x120.png

NETWORK
*

然后生成的构建文件如下所示:

CACHE MANIFEST
# 2016-03-15
# V 1.1
# 
# 'assets/vendor-d41d8cd98f00b204e9800998ecf8427e.css'
# 'assets/eea-ddacde3bdf32d3f94c5a01a2054c6f72.css'
# 'assets/vendor-3229c2c849c3d52c0b362d9fee2106ad.js'
# 'assets/eea-4c760118f51f7402db2f0b6074b6960b.js'
# 'assets/img/Icon120x120-40b31b55211fb293dedf556a648aa47e.png'

CACHE:
index.html
assets/vendor-d41d8cd98f00b204e9800998ecf8427e.css
assets/eea-ddacde3bdf32d3f94c5a01a2054c6f72.css
assets/vendor-3229c2c849c3d52c0b362d9fee2106ad.js
assets/eea-4c760118f51f7402db2f0b6074b6960b.js
assets/img/Icon120x120-40b31b55211fb293dedf556a648aa47e.png

NETWORK
*