前端工程化之: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 :

javascript 复制代码
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配置

javascript 复制代码
// 隐藏源码地图
devtool: "none"
// 隐藏源码地图,但是有一些工具可以读取到
devtool: "hidden-source-map"
// 浏览器报错提示在源码,有源码地图
devtool: "eval"
// 将源码地图嵌入到打包后的main.js文件中
devtool: "eval-source-map"
相关推荐
倔强的小石头_7 分钟前
Python 从入门到实战(十四):Flask 用户认证(给 Web 应用加安全锁,区分管理员与普通用户)
前端·python·flask
be or not to be10 分钟前
前端基础实战笔记:文档流 + 盒子模型
前端·笔记
程序员码歌11 分钟前
短思考第264天,每天复盘5分钟,胜过你盲目努力1整年(2)
前端·后端·ai编程
nono牛12 分钟前
实战项目:设计一个智能温控服务
android·前端·网络·算法
敲敲了个代码7 小时前
从硬编码到 Schema 推断:前端表单开发的工程化转型
前端·javascript·vue.js·学习·面试·职场和发展·前端框架
dly_blog9 小时前
Vue 响应式陷阱与解决方案(第19节)
前端·javascript·vue.js
消失的旧时光-19439 小时前
401 自动刷新 Token 的完整架构设计(Dio 实战版)
开发语言·前端·javascript
console.log('npc')9 小时前
Table,vue3在父组件调用子组件columns列的方法展示弹窗文件预览效果
前端·javascript·vue.js
用户47949283569159 小时前
React Hooks 的“天条”:为啥绝对不能写在 if 语句里?
前端·react.js
我命由我1234510 小时前
SVG - SVG 引入(SVG 概述、SVG 基本使用、SVG 使用 CSS、SVG 使用 JavaScript、SVG 实例实操)
开发语言·前端·javascript·css·学习·ecmascript·学习方法