当前位置: 首页 > news >正文

前端工程化之:webpack1-5(配置文件)

 一、配置文件

 webpack 提供的 cli 支持很多的参数,例如 --mode ,但更多的时候,我们会使用更加灵活的配置文件来控制 webpack 的行为。
默认情况下, webpack 会读取 webpack.config.js 文件作为配置文件,但也可以通过 CLI 参数 --config 来指定某个配置文件。例:npx webpack --config vue.config.js。
配置文件中通过 CommonJs 模块导出一个对象,对象中的各种属性对应不同的 webpack 配置。

注意:配置文件中的代码,必须是有效的 node 代码。

打包过程中是在 node 环境下运行的,需要读取配置文件的内容,所以只能使用 CommonJS 导出。需要进行打包的源代码在打包过程中不需要运行,只是读取代码分析依赖关系,所以两种模块化都支持。

当命令行参数与配置文件中的配置出现冲突时,以命令行参数为准。

二、基本配置

  1.  mode 编译模式,字符串,取值为 development production ,指定编译结果代码运行的环境,会影响 webpack 对编译结果代码格式的处理。
  2.  entry 入口,字符串 (后续会详细讲解),指定入口文件
  3.  output 出口,对象(后续会详细讲解) ,指定编译结果文件。 filename 属性为指定出口文件名。

 以下为配置文件 webpack.config.js

module.exports = {mode: "development", // 打包环境,可以不写,默认生产环境entry: "./src/main.js", // 入口文件output: {// 出口文件filename: "bundle.js",},
};

三、devtool 配置

1、source map

source map 实际上是一个配置,配置中不仅记录了所有源码内容,还记录了和转换后的代码的对应关系。给开发者调试用。 

  • source map 源码地图
  • webpack 中的 source map 

最佳实践: 

  •  source map 应在开发环境中使用,作为一种调试手段。
  •  source map 不应该在生产环境中使用, source map 的文件一般较大不仅会导致额外的网络传输,还容易暴露原始代码。即便要在生产环境中使用 source map ,用于调试真实的代码运行问题,也要做出一些处理规避网络传输和代码暴露的问题。

2、webpack 中的 source map 

使用 webpack 编译后的代码难以调试,可以通过 devtool 配置来优化调试体验。

对于不同环境推荐的 devtool 配置推荐官网:

 devtool配置

// 隐藏源码地图
devtool: "none"
// 隐藏源码地图,但是有一些工具可以读取到
devtool: "hidden-source-map"
// 浏览器报错提示在源码,有源码地图
devtool: "eval"
// 将源码地图嵌入到打包后的main.js文件中
devtool: "eval-source-map"

http://www.lryc.cn/news/288857.html

相关文章:

  • 代码随想录栈和队列专题二刷复盘day17
  • 代码随想录算法刷题训练营day16
  • 【C语言/数据结构】排序(直接插入排序|希尔排序)
  • Jupyter Notebook安装使用教程
  • Unity 中的接口和继承
  • C++区间覆盖(贪心算法)
  • Python with Office 054 - Work with Word - 7-9 插入图像 (3)
  • Nodejs前端学习Day4_fs文件系统模块基础应用之成绩转换
  • 五、Kotlin 函数进阶
  • 重温《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》 –– 学习笔记(一)
  • 定向减免!函数计算让轻量 ETL 数据加工更简单,更省钱
  • git checkout和git switch的区别
  • 故障树分析蒙特卡洛仿真程序(附MATLAB完整代码)
  • 数据结构-线性表
  • java金额数字转中文
  • Ubuntu findfont: Font family ‘SimHei‘ not found.
  • mysql小知识
  • Unity中URP下逐顶点光照
  • Spring Boot3整合Druid(监控功能)
  • 使用Gin框架,快速开发高效的Go Web应用程序
  • 【Unity】【游戏开发】Pico打包后项目出现运行时错误如何Debug
  • 一种解决常用存储设备无法被电脑识别的方法
  • Spark运行架构以及容错机制
  • 短剧APP小程序源码 全开源短视频系统源码/h5/app/小视频系统
  • 深度学习中图像分类、目标检测、语义分割、实例分割哪个难度大,哪个检测精度容易实现,哪个速度低。请按照难度、精度容易实现程度、速度排名。
  • 【AI视野·今日NLP 自然语言处理论文速览 第七十五期】Thu, 11 Jan 2024
  • 数据结构:搜索二叉树 | 红黑树 | 验证是否为红黑树
  • 数据结构顺序表
  • 手把手教你优雅的安装虚拟机 Ubuntu —— 图文并茂
  • 源 “MySQL 5.7 Community Server“ 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。