首页 / WEBPACK / Webpack 笔记
Webpack 笔记
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Webpack 笔记,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1616字,纯文字阅读大概需要3分钟。
内容图文
Webpack的作者:Tobias Koppers
诞生的起源
webpack
是为了实现code splitting
,帮助大型 web
应用提升性能。
本质
Webpack
本质是模块
打包程序,只识别javaScript
语言。在开发一个应用的时会用到各种各样的第三方模块,通过 Webpack
可以将这些模块抽离到一起形成一个模块。但是当项目特别巨大的时候,如果只要一个包那么首次加载的时候肯定很慢,所以可以利用 Webpack
进行代码拆分,实现 web
项目的按需加载。对于多页面入口来说,一个入口就生成一个模块,对于单页面来说,可以对路由进行懒加载操作,实现一个路由打包成一个模块。
什么是 Webpack
模块
有外部依赖关系的,对 webpack 来说都是模块,如:
- ES2015 import 语句
-
CommonJS
require()
语句 -
AMD
define
和require
语句 - css/sass/less 文件中的 @import 语句。
- 样式(
url(...)
)或 HTML 文件(img src=...
)中的图片链接(image url)
四个核心概念
-
entry
:让Webpack
知道从哪里开始来构建其内部依赖图。 -
output
:输出打包出来的文件的位置。 -
loader
:将非JavaScript
文件的模块编译成webpack 能够有效处理的模块。 -
plugins
:做一些范围更广的任务,如压缩代码、抽离CSS
文件、HTML
文件等。
webpack 模块路径解析规则
Webpack
使用 enhanced-resolve 来解析文件路径,resolver
帮助 webpack
找到 bundle
中需要引入的模块代码。
引入绝对路径时,不需要额外解析
相对路径解析
import "../src/file1";
import "./file2";
- 查找相对当前模块的路径下是否有对应文件或文件夹
- 如果是文件,且路径具有文件扩展名,则被直接将文件打包
- 否则,将使用
resolve.extensions
选项作为文件扩展名来解析 - 如果是文件夹找
package.json
的main
字段 - 没有 main 字段就找
index.js
- 如果都没找到,解析失败
模块路径
import "module";
import "module/lib/file";
- 模块目录解析时将在 resolve.modules 中指定的所有目录内搜索。resolve.alias 可以用来替换路径
- 如诺未指定,查找当前文件目录下,父级目录及以上目录下的
node_modules
文件夹 - 检查路径是否指向文件或目录
- 如果路径指向一个文件,且路径具有文件扩展名,则被直接将文件打包
- 否则,将使用
resolve.extensions
选项作为文件扩展名来解析 - 如果路径指向一个文件夹,且包含
package.json
文件,则按照顺序查找 resolve.mainFields 配置选项中指定的字段 - 如果
package.json
文件不存在或者package.json
文件中的 main 字段没有返回一个有效路径,则按照顺序查找 resolve.mainFiles 配置选项中指定的文件名
Manifest 是什么?
Webpack
打包编译后的代码,import
或者 require
会转化为 __webpack_require__
manifest
包含了runtime
候的基础公共依赖。在浏览器运行时,Webpack
用来连接模块化的应用程序的所有代码。runtime
在模块交互时,连接模块所需的加载和解析逻辑。包括浏览器中的已加载模块的连接,以及懒加载模块的执行逻辑。
原文:https://www.cnblogs.com/seny-33/p/12153319.html
内容总结
以上是互联网集市为您收集整理的Webpack 笔记全部内容,希望文章能够帮你解决Webpack 笔记所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。