webpack原理解析
1.webpack核心概念:
entry: 一个可执行模块或库的入口文件。
chunk :多个文件组成的一个代码块,例如把一个可执行模块和它所有依赖的模块组合和一个 chunk 这体现了webpack的打包机制。
loader :文件转换器,例如把es6转换为es5,scss转换为css。
plugin :插件,用于扩展webpack的功能,在webpack构建生命周期的节点上加入扩展hook为webpack加入功能。
2.webpack构建流程(原理):
从启动webpack构建到输出结果经历了一系列过程,它们是:
2.1 解析webpack配置参数,合并从shell传入和webpack.config.js文件里配置的参数,生产最后的配置结果。
2.2 注册所有配置的插件,好让插件监听webpack构建生命周期的事件节点,以做出对应的反应。
2.3 从配置的entry入口文件开始解析文件构建AST语法树,找出每个文件所依赖的文件,递归下去。
2.4 在解析文件递归的过程中根据文件类型和loader配置找出合适的loader用来对文件进行转换。
2.5 递归完后得到每个文件的最终结果,根据entry配置生成代码块chunk。
2.6 输出所有chunk到文件系统。
webpack有哪些主要功能
webpack的主要功能:处理依赖、模块化、打包
1、依赖管理:方便引用第三方模块,让模块更容易复用、避免全局注入导致的冲突、、避免重复加载或者加载不必要的模块
2、合并代码:把各个分散的模块集中打包成大文件,减少HTTP的链接的请求次数,配合uglify.js可以减少、优化代码的体积
3、各种插件:babel把ES6+转化为ES5-,eslint可以检查编译时的各种错误
webpack到底怎么用
几乎所有业务的开发构建都会用到 webpack 。的确,作为模块加载和打包神器,只需配置几个文件,加载各种 loader 就可以享受无痛流程化开发。但对于 webpack 这样一个复杂度较高的插件集合,它的整体流程及思想对我们来说还是很透明的。
详解webpack打包nodejs项目(前端代码)
webpack 自带了一个压缩插件 UglifyJsPlugin,只需要在配置文件中引入即可。 { plugins: [ new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false } }) ] } 加入了这个插件之后,编译的速度会明显变慢,所以一般只在生产环境启
webpack资源模块的类型有哪些
eebpack资源模块(asset module)是一种模块类型,它允许使用资源文件(字体,图标等)而无需配置额外 loader。它的类型有以下几种:
1.asset/resource 发送一个单独的文件并导出 URL。之前通过使用 file-loader 实现。
2.asset/inline 导出一个资源的 data URI。之前通过使用 url-loader 实现。
3.asset/source 导出资源的源代码。之前通过使用 raw-loader 实现。
4.asset 在导出一个 data URI 和发送一个单独的文件之间自动选择。之前通过使用 url-loader,并且配置资源体积限制实现。
还没有评论,来说两句吧...