有没有办法将以下内容减少到一个?
<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>
我无法找到托管在Google的CDN上的这些组合版本。
答案 0 :(得分:15)
我一直在寻找一个捆绑包,但尚未找到一个。在我看来,如果你想将它们全部放在一个js中,你必须手动捆绑它们。文件。
我正在考虑创建一个grunt任务(或类似的)来获取所有依赖项并将它们合并到一个文件中。我知道你想使用CDN,但只是想分享这个想法。
更新
对于对后者感兴趣的人,只是遇到了这个grunt-fetch-from-cdn plugin。 Haven还没试过,但看起来很有趣。
答案 1 :(得分:9)
我认为CDN的主要好处是每个人都可以使用相同的文件,从而允许缓存为大多数访问者删除加载文件的需要,因为它广泛用于其他网站。 / p>
可能,捆绑Angular依赖项的各种配置所需的排列数量将完全否定这一好处,并且最好将所有其他JS打包捆绑包以尽可能少的请求并自行提供。
然而,看起来似乎Angular经常更新,虽然对错误修复有好处,但意味着目前在生产环境中可能存在许多不同的版本(以及文件)。这也会降低各个站点缓存的好处。
如有疑问,请在朋友/家人/工作/等设备上测试这两种方法。在您自己以外的网站上看到了正常的互联网使用情况。
我猜想在大多数情况下,像上面一样单独包含每个模块的CDN链接会更聪明,让缓存可以减少实际的请求数量。如果这成为常见做法,则额外数量的文件对加载时间没有太大影响。
答案 2 :(得分:2)
我同意Colt的意见,但如果明智地使用,则以下内容非常有用(请参阅&#34;使用单个HTTP请求加载多个文件&#34;):JSDelivr
答案 3 :(得分:2)
您可以使用 gulp任务将它们构建到单个脚本中,也可以使用 bower 立即安装这些依赖项。