本文介绍: 4、resolver的主体功能就是解析模块,它是基于enhanced–resolve这个包来实现的,所以在webpack中无论使用什么样的模块引用语句,最终都是使用enhanced–resolve这个包的API来实现模块解析的;3、每一个webpack打包都会创建一个compiler对象,它会走完整个生命周期的过程,webpack所有模块的解析都是compiler对象内置模块的解析器(resolvers)去工作的;/’来找到外部的文件;这也操作起来会比较麻烦;…………
在开发过程中,我们会把程序分解为功能离散的文件,这些文件就是模块;
一、webpack 模块
1、webpack 支持的模块
总体来说 webpack 天生就支持 ECMAScript、CommonJS、AMD、Assets 等模块;同时 webpack 的 loader 也可以使 webpack 可以支持多种语言和预处理语法来编写模块;
2、webpack 模板解析的简易原理
webpack 将 js、css、less、img、html 等文件通过 loader 以及 webpack 内置的一些模块方法解析成模块化文件;
打包编译的解析过程:
1、webpack 执行会返回一个描述 webpack 打包编译整个流程的对象:compiler ;
2、compiler 对象内置了一个打包状态,随着打包的进行状态也会实时的发生变更,同时会触发相应状态的 webpack 钩子函数;
3、每一个 webpack 打包都会创建一个 compiler 对象,它会走完整个生命周期的过程,webpack 所有模块的解析都是 compiler 对象内置模块的解析器(resolvers)去工作的;
4、resolver 的主体功能就是解析模块,它是基于 enhanced-resolve 这个包来实现的,所以在 webpack 中无论使用什么样的模块引用语句,最终都是使用 enhanced-resolve 这个包的 API 来实现模块解析的;
二、模块解析(resolve)
webpack 通过 resolvers 实现模块之间的依赖和引用;resolver 帮助 webpack 从每一个 require/import 语句中找到需要引入的模块代码;当打包的时候 webpack 使用 enhanced-resolve 来解析文件路径;
1、解析路径
2、目录(路径)配置别名
3、配置文件的扩展名
三、外部扩展(Externals)
1、引入 cdn 文件
2、改造
四、依赖图(dependency graph)
1、bundle 分析工具
2、webpack-bundle-analyzer
五、扩展功能
1、PostCSS 与 css 模块
1.1、PostCSS 使用
1.2、CSS 模块给样式类添加唯一的名字
1.3、部分开启 CSS 模块
2、Web Works
3、TypeScript
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。