webpack 是一种前端资源构建工具,一个静态模块打包器(module bundler)。 在 webpack 看来, 前端的所有资源文件(js/json/css/img/less/…)都会作为模块处理。 它将根据模块的依赖关系进行静态分析,打包生成对应的静态资源。
chunk 代码块,bundle静态资源。

- 上面是比较官方的说法,那么什么是静态模块打包器?

Vue开发就是在一个文件中引入这个文件需要的所有资源,比如:样式资源,js资源,图片,字体等资源……,那么这些资源都要交给构建工具处理,我们首先告诉webpack一个入口文件,他会以这个入口文件作为起点文件打包,将每一个依赖都会记录好,形成树状依赖图。依次将资源引进来,进行编译打包生成静态资源。
如图:图片自己画的有点难看,请忽略颜值

  • 什么又是构建工具呢?

我们使用ES6+来开发项目,使用less/sass/stylus等css预处理器来写样式,这些语法浏览器都无法识别,只能通过一个个小工具来翻译为浏览器能识别的语言,而这些小工具我们需要一个个来维护,很麻烦,所以提出了找一个大的工具,将这些小的工具的功能都包含起来,我们只要关心这个大的工具怎么使用就OK了。就是构建工具。
那webpack的主要工作都有什么呢?开发环境和生产环境的配置都有什么不同呢?

1. 开发模式工作:

1)源代码(包含ES6语法,less/sass文件)——> webpack ——> bundle文件,被浏览器运行。
2)自动化工作,自动打开浏览器,自动编译,自动刷新等,让开发效率更高。

2. 生产环境工作:

1) css—>js导致js文件很大,需要从js中提取出来。
2) 对代码进行压缩
3) 样式和部分js代码有兼容性问题,比如:样式的css3针对不同浏览器加前缀等
4) 代码更快,性能更好,更平稳的运行

这些如果放到开发环境中,运行会很慢,不利于开发。

总结:

  1. webpack 能够编译打包 js 和 json 文件,并且能将 es6 的模块化语法转换成浏览器能识别的语法。
  2. 不能编译打包 css、img 等文件
  3. 在webpack看来一切都是模块,包括javascript代码,css和fonts以及图片等等,只有通过合适的loaders,都可以被当作模块处理。并且webpack提供了拆分代码后异步加载的方式,即先加载某个主模块,以后按需加载。
  4. 消除对未引用资源的依赖。
  5. dev-server:自动打开浏览器,实现代码的热编译。

webpack是什么?相关推荐

  1. 第四天:Vue组件的slot以及webpack

    插槽 认识slot 在生活中,很多地方都有插槽,电脑的USB插槽,插板中的电源插槽等. 插槽的目的是让我们原来的设备具备更多的扩展性.比如电脑的USB我们可以插入U盘.鼠标.键盘.硬盘.手机.音响等等 ...

  2. 深入浅出的webpack构建工具---DllPlugin DllReferencePlugin提高构建速度(七)

    阅读目录 一:什么是DllPlugin 和 DllReferencePlugin?作用是什么? 二:在项目中如何使用 DllPlugin 和 DllReferencePlugin? 三:DllPlug ...

  3. linux怎么卸载webpack,安装webpack后,执行webpack -v命令时报错:SyntaxError: Block-sc

    安装webpack后,执行webpack -v命令时报错如下: [root@FreeServer ~]# webpack -v /usr/local/node-v4.4.7-linux-x64/lib ...

  4. express给html设置缓存,webpack + express 实现文件精确缓存

    由于最近开发的个人博客(Vue + node)在使用过程中,发现网络加载有点慢,所以打算对它进行一次优化.本次优化的目标如下: index.html 设置成 no-cache,这样每次请求的时候都会比 ...

  5. vue webpack打包入口文件是哪个_Vue项目起步

    一,安装nodejs软件(直接商城搜索安装即可). 二,配置npm npm install npm -g 三,配置webpack,在cmd中安装. npm install -g webpack npm ...

  6. webpack打开项目命令_webpack前端模块打包工具基本使用的详细记录(一)

    webpack简介 我们都知道,Webpack 是当下最热门的前端资源模块化管理和打包工具.它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源.还可以将按需加载的模块进行代码分隔,等 ...

  7. 在Vue的webpack中结合runder函数

    在Vue的webpack中结合runder函数 1.引入: <h1>下面是vue的内容:</h1><div id="app"><login ...

  8. webpack入门之简单例子跑起来

    webpack入门之简单例子跑起来 webpack介绍 Webpack是当下最热门的前端资源模块化管理和打包工具,它可以将很多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源,还可以将按需加载 ...

  9. webpack打开项目命令_配置webpack中dev.env.js、prod.env.js,解决不同命令下项目启动和打包到指定的环境...

    前后端分离的项目开发中,我们有开发环境.测试环境.预生产环境和生产环境. 1.开发环境下调试接口的时候,一般都会有好几个接口地址(开发服务器上的,本地的,接口开发人员的,七七八八的接口地址),要根据情 ...

  10. 修改html时webpack热更新,webpack学习之路(二)webpack-dev-server实现热更新

    上一章对webpack的配置有了简单的认识. 这一章,我需要学习的是webpack热更新,因为在开发过程中,不希望当文件更改时,人肉去编译文件,刷新浏览器. webpack热更新 webpack-de ...

最新文章

  1. Powershell 命令行泄漏下一个 Windows 10 更新内容
  2. poj 3009 Curling 2.0 (dfs的应用)
  3. 杭州登山地图是谁开发的_好天气继续,重阳节登高,五条杭州登山线路奉上
  4. Spring核心容器简介
  5. 二维几何变换---其他二维变换
  6. java选课系统代码_ssm+jsp开发java学生信息与选课系统(优化界面)
  7. 程序员可以通过软考来办理北京户口,成为北京人
  8. 浅谈如何在优麒麟22.04中使用Eigenstrat和Plink工具生成类23andMe格式原始数据
  9. 什么是软链接?什么是硬链接?
  10. 美国计算机加音乐专业,美国音乐博士解析
  11. OSI的七层模型详解
  12. ViewPagerIndicator
  13. 在OpenWrt上配置原生IPv6 NAT,,实现校园网路由器使用ipv6
  14. java读取zip文件,并将json中的反转义斜杆去除
  15. 2021-07-14 串口 、并口、接口划分(UART、RS232、RS422、RS485、TTL、USB)
  16. 人工智能之设计师构想一
  17. 大班科学电子计算机,《电子计算器》大班教案
  18. ati hd4000/3000/2000 老卡 win8.1驱动
  19. 使用python的win32com模块另存excel文件,如xls另存为xlsx、xlsm另存为xlsx、csv另存为xlsx
  20. 使用Arc Map创建渔网(fishnet)

热门文章

  1. 对云计算中几种基础设施(Dynamo,Bigtable,Map/Reduce等)的朴素看法
  2. python学习_day1-------python基础语法+字符串认识
  3. 网页php如何判断登录手机串号_php判断手机段登录,以及phpcms手机PC双模板调用...
  4. 美国防承包商邮件系统遭攻击,军事机密或泄露
  5. python电梯题_Python模拟简单电梯调度算法示例
  6. redis实现session共享
  7. 前端内容滑动插件bxSlider
  8. 重启计算机后回收站,win7在右键菜单中添加“清空回收站”和“重新启动”选项的方法(图文)...
  9. ImageLoad图片设计框架
  10. 东北大学计算机科学与工程学院企业,朱靖波 - 东北大学 - 计算机科学与工程学院...