Angular 2:为什么要使用NPMpipe理器而不是CDN引用?

Angular 2看起来比Angular更好,更简单,但是,我使用NPM有一个问题 – 在我的工作中是不允许的。 但是我有更大的问题是为什么我们需要NPM呢? 我已经使用了与CDN版本的Angular,它总是声称比本地版本更好(更好的caching),所以,使用NPMpipe理器与CDN引用(如果有的话)有什么优势? 为什么要增加一个项目的当地规模?

今天我看到WEB开发到处都是使用NPM。 我想了解为什么所有突然的WEB开发都开始向本地资源转移,而不是通常的在线资源。 我正在寻找令人信服的解释,好的文章/博客指出为什么select一个vs另一个。

Angular的好处之一是框架的结构可以让你根据你的具体应用需求量身定制应用程序包。

从CDN下载所有的iife文件,这是不可能的

如果你看看Angular npm包,你将会看到它们由构成框架的一些较小的模块组成。

使用一种名为“Tree shaking”的技术,您的捆绑器可以对您的代码依赖项运行静态分析,并创build一个仅包含引用模块的捆绑包。 这可以大大减less包的大小。

这里有一些关于Tree Shaking的更多信息:

http://www.syntaxsuccess.com/viewarticle/tree-shaking-in-javascript

主要是因为一个现代的Web应用程序将使用某种依赖或模块加载器,如requireJS或(在Angular2的情况下)SystemJS或commonJS和CDN源代码使这更复杂,因为它需要一个新的资源http连接来获取您的源资产和来自不同的域(跨服务器脚本问题)