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

webpack 学习

一、webpack概念

本质上,webpack是一个用于现代 JavaScript 应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部从一个或多个入口点构建一个 依赖图(dependency graph),然后将你项目中所需的每一个模块组合成一个或多个bundles,它们均为静态资源,用于展示你的内容。

二、安装

1.使用webpack前我们先安装yarn npm install yarn -g 全局安装

初始化文件 yarn init -y

安装webpack yarn add -D webpack webpack-cli

2.创建src文件夹 创建index.js文件

打开index文件方法 创建html页面 进行js的引入

或者使用在终端使用node命令 node js文件名称 直接执行当前的js命令

3.配置 webpack 创建webpack.config.js (因为是个js文件想要全局进行使用所以进行抛出)

webpack 偏node写法 所以

webpack抛出使用 node 抛出方法module.exports 加对象方式

4.配置打包入口

entry 是文件入口 配置好想要打包的页面 在终端进行打包yarn webpack

有三种方式 单个文件打包 多个文件打包 多个文件命名打包

打包命令 yarn webpack

module.exports = { 单个文件打包 // entry: './src/index.js' 多个文件一起打包 // entry: ['./src/index.js', './src/hi.js'] 命名打包 entry: { index: './src/index.js', hi: './src/hi.js' } }

5.output出口文件

出口文件 output: { filename: 指定名称 clean: true 清空打包文件 path: 指定打包位置 }

但是path需要在配置前引入 (pathh是自带的文件)

const path = require('path');
output: { filename: '[name]-[id]-[hash].js', //指定名称 生成名字 id 和不同hash值 clean: true, //清空打包文件 path: path.resolve(__dirname, 'dist') //指定打包位置 __dirname默认名字 },

6.模式mode 两种 production生产模式 development开发模式

通过选择development,productionnone之中的一个,来设置mode参数,你可以启用 webpack 内置在相应环境下的优化。其默认值为production

module.exports = { // 模式两种 production 生产文件(默认) development mode: 'production' }

7.loader(转换某些类型的模块)

webpack 只理解JS与JSON文件 所以配置插件 让webpack识别其他语言 html或者react vue等

loader 用于对模块的源代码进行转换。loader 可以使你在import或 "load(加载)" 模块时预处理文件。因此,loader 类似于其他构建工具中“任务(task)”,并提供了处理前端构建步骤的得力方式。loader 可以将文件从不同的语言(如 TypeScript)转换为 JavaScript 或将内联图像转换为 data URL。loader 甚至允许你直接在 JavaScript 模块中importCSS 文件!

使用前要下载对应的loader

npm install --save-dev css-loader ts-loader

使用在webpack.config.js文件中指定 loader (具体的loader模块在官网就可以查找)

module: { rules: [ { test: /\.css$/i, use: ['style-loader', 'css-loader'], }, { test: /\.(png|svg|jpg|jpeg|gif)$/i, type: 'asset/resource', }, ] }

8.插件plugin (扩充了webpack的功能)

插曲babel 是将老版本的东西转为新版本(装指定版本的东西) 可以安装

命令 npm install -D babel-loader @babel/core @babel/preset-env webpack

下载插件 yarn add -D html-webpack-plugin (D指的是开发环境)

webpack.config.js内进行配置 需要引入 才使用插件

const HtmlWebpackPlugin = require('html-webpack-plugin'); plugins:[ new HtmlWebpackPlugin({ template:'./src/index.html' }) ]

9.映射源码

“映射源码”通常指的就是Source Map。它是一个关键的信息文件,里面存储着转换后代码与原始源代码的位置映射关系

Webpack 通过devtool配置项来控制 Source Map 的生成方式和行为

devtool:"inline-source-map"

基本流程

  1. 生成:当你设置devtool为特定值(如'source-map')并进行打包时,Webpack 除了生成bundle.js,还会生成对应的bundle.js.map文件 。

  2. 关联:在生成的bundle.js文件的最后一行,会自动添加一行注释,告诉浏览器 Source Map 文件的位置 。

    //# sourceMappingURL=bundle.js.map
  3. 加载与还原:浏览器在默认情况下不会加载这个 map 文件。只有当你打开浏览器的开发者工具(DevTools)时,浏览器才会根据注释去加载对应的.map文件 。然后,浏览器利用 map 文件中的映射关系,将正在执行的压缩代码在开发者工具的 "Sources" 面板中还原为你编写的源代码,方便你进行断点调试 。

10.安装开发服务器 服务器自动更新数据

命令yarn add -D webpack-dev-server

打包服务器yarn webpack serve(serve开了线上)

服务器线上自动进行数据更新

自动打包 yarn webpack serve --open

11. 关闭体积校验

performance: {

hints: false

},

打包工具除了webpack 还有vite 比webpack更快

http://www.jsqmd.com/news/463475/

相关文章:

  • 文本处理的 CI/CD:用 NLP 静态分析解决查重飘红与 Format Error
  • 弦音墨影效果实测:Qwen2.5-VL在弱光、逆光、雾天监控视频中的鲁棒性
  • OFA视觉问答模型镜像优势:永久禁用MODELSCOPE_AUTO_INSTALL_DEPENDENCY机制解析
  • FreeRtos学习中疑惑
  • 电子游戏与人类“存续与复制”的近端机制
  • Makefile相关
  • 为什么选择科哥构建版?IndexTTS2定制镜像优势全面解析
  • C语言数据结构系列:链表详解与代码示例
  • 【2026 最新 !】分享一套优质的 SpringBoot+Vue 高校就业招聘系统的设计与实现(万字文档+源码+视频文档讲解)
  • 线程同步与互斥
  • webase部署智能合约失败报错:合约部署错误,请检查合约的构造函数入参或检查链状态...如何解决?
  • YOLO目标检测数据集大全【数据集+训练好的模型+训练检测教程】(持续更新)
  • 订单提现管理系统
  • 代码都没啥问题,Xuper超级链上创建合约时为什么solidity合约还是编译失败?
  • 对抗知网的 N-Gram 算法:基于语义解耦的【文本重构】与【事实性核验】架构设计
  • 纯VB6代码实现稳定多线程(源码下载,非ActiveX EXE)
  • 商城项目中用到的一些ubuntu系统指令
  • Ren‘Py给不同的角色安排不同的对话框
  • Agent开发学习
  • Crmeb.java项目理解(一)
  • HTB Tracks - REVERSE - SimpleEncryptor
  • Python中继承带来的问题
  • NFTMarket 1 | NFT 简介、业务、技术方案
  • 四字节十六进制转化为单精度IEEE 754 浮点数
  • 打开软件就弹出vccorlib120.dll如何修复? 附免费下载方法分享
  • Ray + LanceDB + Daft 构建大规模向量数据分析管道
  • 计算机软件资格考试——专业英语
  • 没有 Base Code 谈何重构?揭秘智能零零AI论文助手从 0 到 1 的大模型结构化生成引擎
  • 打开软件就弹出vcomp.dll如何修复? 附免费下载方法分享
  • macbookair安装openclaw