我想使用angular-cli构建一个捆绑我的应用程序代码的应用程序,但不包括捆绑代码中的Angular2框架或其他大型外部JavaScript库.我想在页面加载时从CDN加载这些库.有没有办法做到这一点?
另外,有没有办法在保留本地构建的好处的同时只使用我正在使用的Angular2框架的部分加载?
我看到了这个问题,但它适用于SystemJS,我不认为它适用于Angular-cli:如何使用CDN和SystemJS加载angular2
您只需将指向CDN 的相应标记添加到
index.html
文件中.请记住删除.js文件,angular-cli.json
以免它们与应用程序捆绑在一起.
目前,您不能为Angular 2 js文件本身做到这一点,它们会自动与您的应用程序捆绑在一起.虽然最新的更新使Web服务器和浏览器能够缓存供应商文件,但是它们不会在应用程序的每个访问者上重新加载,而是仅在哈希更改时.
使用Angular(版本2或更高版本)创建应用程序时,使用仅包含您使用的Angular平台部分的构建系统.可以在构建时编译模板,允许构建过程从捆绑的有效负载中删除模板编译器.最后,在您的代码的静态分析的帮助下,构建过程会发生树木抖动,这进一步从有效负载包中删除了平台的未使用部分.
如果您从CDN提供Angular,它将需要是厨房水槽,整个平台.这将是巨大的,并且对您的应用程序造成损害.
你最好允许使用angular-cli捆绑你需要的平台部分.随着WebPack treeshaking插件的改进,您的包大小将变得更小.