Webpack简记 | 青训营笔记

80 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 10 天

前端工程化与webpack

前端工程化

image.png

解决方案

webpack

parcel

webpack基本使用

webpack

是前端工程化的具体解决方案

主要功能

它提供了有好的前端模块化开发支持,以及代码压缩混淆、处理浏览器端JavaScript的兼容性、性能优化等强大功能。注意webpack默认只能打包处理.js后缀名结尾的模块,其他的处理不了

image.png

npm install jquery -S:安装jQuery,-S的意思就是明确告诉npm,当安装完成之后,要把包及其版本号记录到dependencies中(-S=--save)

安装webpack

npm install webpack@5.42.1 webpack-cli@4.7.2 -D (会记录到decdependencies,开发依赖包,-D=--save-dev)

webpack中的默认约定

image.png

自定义打包的入口和出口

image.png

webpack中的插件

作用

通过安装和配置第三方的插件,可以拓展 webpack 的能力,从而让 webpack 用起来更方便。最常用间webpack 插件有如下两个: webpack-dev-server 类似于 node.js 阶段用到的 nodemon 工具 每当修改了源代码,webpack 会自动进行项目的打包和构建

html-webpack-plugin webpack 中的 HTML 插件(类似于一个模板引警插件) 可以通过此插件自定制index.html页面的内容

安装

npm install webpack-dev-server -D

webpack中的loader

调用loader加载器才可以正常打包不是以.js为后缀名结尾的模块

 loader加载器作用: 协助webpack打包处理待定的文件模块  

调用过程:

image.png

Source Map

whatis

SourceMap就是一个信息文件,里面存储着位置信息。有了它,出错的时候,除错工具将直接显示原始代码,而不是转换后的代码,能极大地方便后期的调试

  默认Source Map的问题:记录的是生成后的代码位置,会导致报错行数与源代码不符的问题。(但是可以解决!)

解决默认问题

image.png

webpack生产环境的Source Map

在生产环境下,如果省略了 devtool 选项,则最终生成的文件中不包含 Source Map。这能够防止原始代码通过 Source Map 的形式暴露给别有所图之人。

只定位行数不暴露源码

将deevtool的值设置为nosources-source-map

定位行数且暴露代码

将devtool的设置为source-map