来自CDN的Ember CLI deps?

时间:2014-10-16 05:41:47

标签: ember.js cdn ember-cli

加载我的ember CLI应用程序当前涉及下载一个3Mb文件,其中大部分都包含常见的库,如jquery,ember,bootstrap等.M3b并不大,但它在慢连接时变得明显,所以我想剥离排除所有公共库,然后从CDN获取它们。我们的想法是,浏览器会缓存它们,因为每次我更新我的应用程序时都不需要重新下载它们(目前很常见)。我已阅读this问题,该问题指出只需向index.html添加<script...>即可,但我无法弄清楚如何告诉ember不要将这些库打包到供应商中的.js。

3 个答案:

答案 0 :(得分:6)

brocfile.js(较新版本中为ember-cli-build.js)中,将构造函数更改为

var app = new EmberApp({
  vendorFiles: {
    'jquery.js': false,
    'handlebars.js': false,
    'ember.js': false
  }
});

现在以旧时尚方式包含index.html中的那些,并享受几乎每个用户浏览器已经缓存jquery的事实,即使他们之前没有访问过您的网站。

答案 1 :(得分:-1)

docs通常有一个答案:

  

您需要安装Bower,这是一个程序包管理器,可以使您的前端依赖项(包括JQuery,Ember和QUnit)保持最新。这就像跑步一样简单:

如果你检查你的bower.json文件,你会发现jquery和所有其他的lib,bower uninstall,你就完成了。

答案 2 :(得分:-1)

这是默认使用ember-cli获得的内容。 From the manual

  

当环境生产时(例如ember build --environment=production),插件将通过在文件名末尾附加md5校验和来自动指纹您的js,css,png,jpg和gif资产(例如{{1 }})。此外,您的html,js和css文件将被重写以包含新名称。

然后,您可以修改assets/yourapp-9c2cbd818d09a4a742406c6cb8219b3b.js,告诉它您的cdn的基本网址是什么:

  

Brocfile.js - 默认值:prepend - 一个预先添加到所有资源的字符串。适用于''

等CDN网址