角色依赖的Google CDN?

bla*_*ter 49 javascript angularjs

有没有办法减少以下包括减少到一个?

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-route.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-sanitize.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-animate.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-cookies.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

我找不到这些托管在谷歌CDN上的组合版本.

alu*_*sen 15

我一直在寻找一个包,但还没有找到一个.在我看来,如果你想将它们全部放在一个js中,你必须手动捆绑它们.文件.


我正在考虑创建一个grunt任务(或类似的)来获取所有依赖项并将它们合并到一个文件中.我知道你想使用CDN,但只是想分享这个想法.

更新
任何有兴趣在后者,只是碰到这种传来咕噜取入从-CDN插件.还没有尝试过,但看起来很有趣.


Col*_*ack 9

我认为CDN的主要好处是每个人都使用相同的文件,因此允许缓存以消除为大多数访问者加载文件的需要,因为它广泛用于其他网站.

可能,捆绑Angular依赖项的各种配置所需的排列数量将完全抵消这种好处,并且最好将所有其他JS打包捆绑包以尽可能少的请求并自行提供.

但是,看起来好像Angular经常更新,虽然对错误修复有好处,但意味着目前在生产环境中可能有许多不同版本(以及文件)的使用.这也会降低各个站点的缓存优势.

如有疑问,请在朋友/家人/工作/等设备上测试这两种方法.在您自己以外的网站上看到了正常的互联网使用情况.

我猜想在大多数情况下,像上面一样单独包含每个模块的CDN链接会更聪明,让缓存可以减少实际的请求数量.如果这成为常见做法,则额外数量的文件不会对加载时间产生太大影响.