webpack配置、插件使用案例

ops/2024/9/23 7:24:33/

概念

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

webpack 能做什么

1. 语法转换

   + less/sass/stylus转换成css

   + es6转换成es5

   + ...

2. html/css/js 代码压缩合并 (打包)

3. webpack可以在开发期间提供一个开发环境

   + 自动打开浏览器

   + 保存时自动刷新

webpack基本打包配置

1. 建目录,在 app 目录下添加 src/main.js文件;

2. 初始化;

 yarn init -y

3. 安装依赖包 (-D 将依赖记录成开发依赖, 只是开发中需要用的依赖, 实际上线不需要的);

yarn add webpack  webpack-cli  -D

4. 到package.json文件中, 配置scripts;

scripts: {"build": "webpack --config webpack.config.js"
}

5. 提供 webpack.config.js;

   参考文档:   https://webpack.docschina.org/concepts/#入口-entry-

const path = require('path')
module.exports = {// entry: 配置入口文件 (从哪个文件开始打包)entry: './src/main.js',// output: 配置输出 (打包到哪去)output: {// 打包输出的目录 (必须是绝对路径)path: path.join(__dirname, 'dist'),// 打包生成的文件名filename: 'bundle.js'},// 打包模式 production 压缩/development 不压缩mode: 'development'
}

6. 执行配置的scripts脚本;

yarn build

webpack插件使用案例

自动生成html --- html-webpack-plugin插件

 1. 下载 (-D 将依赖记录成开发依赖, 只在开发阶段用, 实际上线是不需要的)

yarn add html-webpack-plugin  -D

  2.  在`webpack.config.js`文件中,引入这个模块

// 引入自动生成 html 的插件
const HtmlWebpackPlugin = require('html-webpack-plugin')

  3. 配置插件

plugins: [...new HtmlWebpackPlugin({ template: './public/index.html' })
]

 配置好了之后, public 目录的 index.html 就不需要引入打包后的文件了, 会自动被插件生成 html 引入。

分离 css 文件 --- mini-css-extract-plugin插件

1. 下载(-D 将依赖记录成开发依赖, 只在开发阶段用, 实际上线是不需要的)

yarn add mini-css-extract-plugin -D

2.  在`webpack.config.js`文件中,引入这个模块

// 引入分离 css 文件的 模块
const MiniCssExtractPlugin = require('mini-css-extract-plugin')

3. 配置loaders

// 模块加载
module: {// loader的规则rules: [// 配置 css 文件的解析{test: /\.css$/,use: [ // 根据官方文档写的,注意'css-loader'的书写位置{loader: MiniCssExtractPlugin.loader,options: {publicPath:'../',},},'css-loader']},],
}

4. 配置插件

// 配置插件
plugins: [...// 定义打包好的文件的存放路径和文件名new MiniCssExtractPlugin({filename:'css/index.css'})
],

清除dist目录的插件 --- clean-webpack-plugin插件

  1. 下载 (-D 将依赖记录成开发依赖, 只在开发阶段用, 实际上线是不需要的)

yarn add clean-webpack-plugin -D

  2.  在`webpack.config.js`文件中,引入这个模块

// 导入清除插件
const { CleanWebpackPlugin } = require('clean-webpack-plugin');

  3. 配置插件

plugins: [...// 调用清除打包目录插件new CleanWebpackPlugin()
]

http://www.ppmy.cn/ops/33969.html

相关文章

图文并茂手把手教你安装windows搭建sqlserver(SqlServer数据库安装保姆级教程)

sqlserver是什么 SQL Server 是由美国微软公司(Microsoft)开发的一款关系型数据库管理系统(RDBMS)。作为全球主流的数据库平台之一,SQL Server 设计用于高效管理和处理大量结构化数据,支持各种规模的应用场…

图像处理--空域滤波增强(原理)

一、均值滤波 线性滤波算法,采用的主要是邻域平均法。基本思想是使用几个像素灰度的某种平均值来代替一个原来像素的灰度值。可以新建一个MN的窗口以为中心,这个窗口S就是的邻域。假设新的新的像素灰度值为,则计算公式为 1.1 简单平均法 就是…

智慧旅游引领未来风尚,科技助力旅行更精彩:科技的力量推动旅游业创新发展,为旅行者带来更加便捷、高效和智能的旅行服务

目录 一、引言 二、智慧旅游的概念与特点 (一)智慧旅游的概念 (二)智慧旅游的特点 三、科技推动旅游业创新发展 (一)大数据技术的应用 (二)人工智能技术的应用 (…

每日一博 - 闲聊架构设计中的多级缓存设计

文章目录 方法论概述客户端缓存应用层缓存服务层缓存缓存设计的注意事项总结 思维导图戳这里 方法论概述 从客户端到服务层,缓存的应用广泛而重要。通过合理的缓存设计,能够有效地提高系统的性能并降低延迟。 客户端缓存 在客户端层面,浏览…

TCP 连接,一端断电和进程崩溃有什么区别?

TCP 连接,一端断电和进程崩溃有什么区别? 前言主机崩溃进程崩溃有数据传输的场景客户端主机宕机,又迅速重启客户端主机宕机,一直没有重启 总结 前言 有的小伙伴在面试腾讯的时候,遇到了这么个问题: 这个属…

贪吃蛇小游戏(c语言)

1.效果展示 屏幕录制 2024-04-28 205129 2.基本功能 • 贪吃蛇地图绘制 • 蛇吃食物的功能 (上、下、左、右方键控制蛇的动作) • 蛇撞墙死亡 • 蛇撞自身死亡 • 计算得分 • 蛇身加速、减速 • 暂停游戏 3.技术要点 C语言函数、枚举、结构…

three.js 中ShaderChunk的 uv_pars_vertex.glsl

1. three.js 中ShaderChunk的 uv_pars_vertex.glsl export default /* glsl */ #if defined( USE_UV ) || defined( USE_ANISOTROPY ) // 如果使用了UV坐标,或者什么什么; // 那我就声明一个 varying vUv 变量varying vec2 vUv;#endif #ifdef USE_MAP// 如果我们使…

QT+网络调试助手+TCP客户端

一、网络调试助手UI界面 编程主要思路: 首先将水平的控件 水平布局 ,然后相对垂直的控件 垂直布局 ,哪怕是底下的groupBox也需要和里面的内容 水平布局,然后最后框选全部 栅格布局。如果需要界面自适应窗口大小&#xff0c…