What is vendor file in angular?

以 SAP 电商云 UI 的 Angular 页面为例,这个 vendor.js 有超过 17 万行代码:

此文件包含导入您的应用程序 (app.module) 的所有库,包括 Angular 库。 导入到您的应用程序中的第三方库也会被编译到此文件中(例如 lodash、moment 等)。

这个文件在开发编译(ng build)之后很大,因为它包含在浏览器中编译 Angular 所需的一切。 在将您的应用程序发布到生产环境之前,始终运行 prod 构建 (ng build –prod)。 prod 构建运行 Ahead of Time (AoT) 编译并执行 tree-shaking。

main.js

包含应用程序的 action 相关代码,比如 Effect 实现。

同样的 effect 实现,在 vendor.js 里找不到。

在浏览器下载并运行代码之前的构建阶段,Angular 提前 (AOT) 编译器将您的 Angular HTML 和 TypeScript 代码转换为高效的 JavaScript 代码。在构建过程中编译您的应用程序可在浏览器中提供更快的渲染。

除了上面的内容,vendor bundle JS 还包含什么?制作“供应商捆绑包”。供应商包包含每个应用程序功能所依赖的所有框架和库。通过将所有这些代码构建到单个包中,客户端可以有效地缓存包,并且您只需要在框架或库更新时重新构建包。因此,vendor.js 里不包含自开发代码。

什么是 angular bundle?

捆绑是将多个文件合并为一个文件的过程。在我们的例子中,Angular 等第三方库和其他依赖项将被捆绑到 vendor.bundle.js 中。

更多Jerry的原创文章,尽在:“汪子熙”:

Angular 应用里的 vendor.js 是用来干什么的?相关推荐

  1. Angular 开发里的 polyfills.js、runtime.js、styles.js 和 vendor.js 是用来做什么的

    what is main.js and main.js.map? and other stuff 问题 chunk {main} main.js, main.js.map (main) 24.5 kB ...

  2. Angular应用里setTimeout被如何被monkey patched的

    monkey patched: monkey patch指的是在运行时动态替换,一般是在startup的时候. 下面的测试代码可以让我们弄清楚,浏览器支持的原生函数setTimeout,是如何在Ang ...

  3. web静态资源访问规则||webjars的访问配置——webjars是maven库里面对css js image打的一个jar包

    Html css js image  txt   web项目中 放在 Webapp 在springboot项目中  静态资源放置的位置 Springboot默认的静态资源目录 (1)在src/main ...

  4. Angular 项目里 angular.json 文件内容的学习笔记

    看一个基于 Angular 的 SAP Spartacus 项目里 angular.json 的例子: version: The configuration-file version. newProj ...

  5. Angular应用里的tsconfig.app.json

    tsconfig.app.json是tsconfig.json的扩展: 在应用工程文件angular.json里的tsConfig字段处被引用: ng build后的输出: 2020年10月4日国庆节 ...

  6. Angular应用里的Template Reference变量

    Angular应用里的Template Reference Variable,模板引用变量,用于创建一个对模板里DOM元素或者Angular指令的引用. 使用#号定义一个模板引用变量. 看个具体的例子 ...

  7. Angular应用里HTTP请求的错误处理

    在需要进行错误处理的Angular应用里,从rxjs里导入catchError: import { catchError, map, tap } from 'rxjs/operators'; getH ...

  8. 网页里如何使用js禁用控制台

    网页里如何禁用右击事件?使用jQuery,几句代码就可以搞定了 document.oncontextmenu = function(){return false;} 简单示例: js实现: <! ...

  9. uniapp 微信小程序打包 vendor.js过大 导致打包超过2M

    1.分包加载,小程序限制一个包2M,可以分9个子包,整包共计不能超出20M,这一步很简单,如果看文档感觉枯燥的可以参考uview框架的demo,因为这个demo就使用了小程序的分包机制,demo链接( ...

最新文章

  1. maven 根据P参数值打包动态修改properties文件中值或一定properties
  2. 前端学习 -- 颜色
  3. CF809D-Hitchhiking in the Baltic States【FhqTreap】
  4. java quartz DateBuilder
  5. python 变量只用一次_Python变量72般变化,只需掌握4点,就可万变不离其宗
  6. 计算机组成原理—双口RAM和多模块存储器
  7. 21-python-time,random模块的应用
  8. 简述数学建模的过程_【数学建模的基本工作流程】作业帮
  9. CVPR2018_主干网络系列(3)_SE-Net及其衍生的网络[SE-XX-Net]
  10. mongodb 分组聚合_MongoDB 临时表横空出现 1 万+,这条语句执行前请准备好翻车的姿势...
  11. 畅捷通服务器系统,畅捷通
  12. TBSchedule初识
  13. 脚本、脚本语言、写脚本都是什么呀???
  14. android英文参考文献,英文参考文献
  15. 关于融云聊天室KV 值的正确使用
  16. 基于STM32的TFT-LCD触摸屏实验(HAL库)
  17. var 与 varp
  18. [Python系列-16]:人工智能 - 数学基础 -6- 常见数学函数、激活函数大全
  19. Day65:Python获取阿里云产品云监控数据指标
  20. WordPress插件推荐,WordPress插件推荐和使用

热门文章

  1. 去掉IntelliJ IDEA 中 mybatis 对应的 xml 文件警告
  2. 数据分析---ipython使用
  3. wkhtmltopd 下载安装以及php环境下的使用
  4. 必须学会使用的35个Jquery小技巧
  5. 使用约束控件创建界面
  6. BZOJ4568 : [Scoi2016]幸运数字
  7. iOS 字典与字符串之间的互转
  8. 校园网搭建案例(课堂总结)
  9. linux源码包编译安装与rpm安装方法介绍
  10. 你还在担任“消防队员”的角色么?