Webpack 之 Devtool 详解 在使用 Webpack 进行项目构建时,Devtool 是一个非常重要的选项,它控制着源映射的生成方式。源映射是一种将编译后的代码映射回原始代码的技术,可以帮助开发者在调试过程中快速定位问题。下面我们将详细介绍 Webpack 之 Devtool 的选项和使用方法。 Devtool 选项的作用是控制源映射的生成方式,它可以取以下几种值: 1. none:不生成源映射文件 2. eval:将每个模块封装到 eval 里包裹起来执行,并且会在末尾追加注释 3. source-map:生成一个独立的源映射文件 4. hidden-source-map:与 source-map 相比,少了末尾的注释 5. inline-source-map:将源映射信息作为 DataURL 的形式内嵌进了 bundle 中 6. eval-source-map:与 eval 类似,但是把注释里的源映射都转为了 DataURL 7. cheap-source-map:与 source-map 生成结果差不多,但生成的 index.js.map 文件内容却比 source-map 生成的少 不同的 Devtool 选项对构建和重建速度有着明显的影响,因此在选择 Devtool 选项时需要考虑到项目的实际需求。 在下面的示例中,我们将使用不同的 Devtool 选项来演示源映射的生成过程。 我们创建一个名为 print.js 的文件,内容如下: ``` export default function printMe() { console.log('武昌鱼@222'); } ``` 然后,我们创建一个名为 index.js 的文件,内容如下: ``` import printMe from './print.js'; function component() { var element = document.createElement('div'); var btn = document.createElement('button'); btn.innerHTML = 'Click me and check the console!'; btn.onclick = printMe; element.appendChild(btn); return element; } document.body.appendChild(component()); ``` 接下来,我们创建一个名为 webpack.config.js 的文件,内容如下: ``` const path = require('path'); const CleanWebpackPlugin = require('clean-webpack-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = { entry: './src/index.js', output: { filename: '[name].js', path: path.resolve(__dirname, 'dist') }, plugins: [ new CleanWebpackPlugin(['dist']), new HtmlWebpackPlugin({ title: 'Webpack 之 Devtool' }) ] }; ``` 现在,我们可以使用不同的 Devtool 选项来生成源映射文件。 我们使用 none 选项,输出结果如下: ``` console.log('武昌鱼@222'); ``` 可以看到,在 none 选项下,不生成源映射文件。 接着,我们使用 eval 选项,输出结果如下: ``` eval("console.log('武昌鱼@222');"); ``` 可以看到,在 eval 选项下,每个模块都被封装到 eval 里包裹起来执行,并且会在末尾追加注释。 我们使用 source-map 选项,输出结果如下: ``` console.log('武昌鱼@222'); ``` 可以看到,在 source-map 选项下,生成了一个独立的源映射文件。 我们使用 cheap-source-map 选项,输出结果如下: ``` console.log('武昌鱼@222'); ``` 可以看到,在 cheap-source-map 选项下,生成的 index.js.map 文件内容比 source-map 生成的少。 Devtool 选项对源映射的生成方式有着明显的影响,选择合适的 Devtool 选项非常重要。
- 粉丝: 7
- 资源: 936
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 用于协调多无人机路径规划的多维优化Matlab程序.rar
- 用于自动无人机飞行和仿真的通用原理图和 MATLAB 文件.rar
- 与时间相关的线性动力学系统拟合Matlab代码.rar
- 原件精确放射路径的快速计算matlab代码.rar
- 在Matlab中用蒙特卡罗方法模拟二维伊辛模型.rar
- 在MATLAB中实现B样条,包括执行结点插入和删除过程.rar
- 在C++和Matlab中用各种方法求解1D、2D和3D半导体泊松漂移扩散方程.rar
- 在状态估计中使用 EKF 和不使用 EKF 之间的差异Matlab代码.rar
- 自主移动机器人和概率机器人的任务Matlab代码.rar
- 主动配电网电压控制策略Matlab实现.rar
- 最优状态估计:卡尔曼、H Infinity 和非线性方法Matlab代码.rar
- ZSD-YOLO论文原文
- 离线xml格式化html
- 智能车牌识别系统设计及其无牌车处理方案研究
- python源码教程,超级详细,附开发教程手册,python前端开发,入门学习第一章,教程非常仔细
- 液体药品自动罐装机设备3D图纸和工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip