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

一篇文章解决Webpack

一:什么是webpack

webpack是一个用于现代JavaScript应用程序的静态模块打包工具。本质是一个软件包,
静态模块包括以下:html、css、js、图片等固定内容的文件

二:webpack工作原理

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

所谓依赖图:当一个文件依赖另一个文件时,webpack都将文件视为直接存在依赖关系。

三:webpack使用流程

  1. 新建并初始化项目,编写业务源代码
  2. 下载webpack webpack-cli到当前项目中(本地软件包),并配置局部自定义命令(webpack源码会自动下载到node_modules中)
  3. 运行打包命令,自动产生dist分发文件夹(压缩和优化后,用于最终运行的代码)

四:打包入口起点(打包文件的主入口)

1单个入口语法

module.exports={entry:{main:'输出路径'}
}
//简写形式如下:
module.exports={entry:'输出路径'
}

2 对象语法

五:打包出口(写入编译软件)

通过output选项,告知webpack如何向硬盘中写入编译文件。
注意,即使可以存在多个entry起点,但只能指定一个output配置。

1 用法

在output选项中,配置filename属性。用于规定输出的文件名配置

module.exports={output:{filename:'bundle.js(输出规定的文件名)'}
}

2 多个入口起点

六:利用Webpack处理css代码

1 打包CSS代码

  1. 将css引入js入口文件(默认src/login/index.js)中
  2. 下载css.loader(解析css代码)和style.loader(把解析后的css代码插入到DOM中)本地软件包
  3. 配置webpack.config.js让Webpack拥有该加载器功能
  4. 打包后观察结果

2 提取CSS代码

1 为什么要提取css代码为一个独立文件

浏览器可以缓存css文件,同时下载css与js文件,提高网页运行效率

2 如何使用mini-css-extract-plugin插件

  1. 下载mini-css-extract-plugin本地软件包
  2. 配置webpack.config.js让Webpack拥有插件功能
  3. 打包后观察结果

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【数据结构】了解哈希表,解决哈希冲突,用Java模拟实现哈希桶
  • 数据结构与算法 - 递归
  • 大龄程序员转型攻略:拥抱人工智能,开启新征程
  • 截止频率为声波传播的频率上、下限?如何区分两者的关系
  • Golang | Leetcode Golang题解之第301题删除无效的括号
  • Can we Deploy Web Application in Azure OpenAI of Production Level
  • ElasticSearch 关于搜索,有哪些类型的搜索
  • 【C++从小白到大牛】类和对象
  • 【Boot】华硕B85 Pro Gamer 刷NVME驱动【2024年8月1日】
  • 一文看懂Java反射、注解、UML图和Lambda表达式
  • 创邻科技Galaxybase银河图数据库赋能供应链高效协同
  • [Git场景]常用工作场景演练
  • 数据库事务处理技术——故障恢复
  • mysql 数据导入与导出
  • ES(ElasticSearch)倒排索引
  • 【剑指offer】让抽象问题具体化
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • jdbc就是这么简单
  • linux安装openssl、swoole等扩展的具体步骤
  • mongodb--安装和初步使用教程
  • vue-cli在webpack的配置文件探究
  • XForms - 更强大的Form
  • 安装python包到指定虚拟环境
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 那些年我们用过的显示性能指标
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 入手阿里云新服务器的部署NODE
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 优化 Vue 项目编译文件大小
  • linux 淘宝开源监控工具tsar
  • mysql面试题分组并合并列
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • # Redis 入门到精通(九)-- 主从复制(1)
  • #include<初见C语言之指针(5)>
  • $.ajax中的eval及dataType
  • (003)SlickEdit Unity的补全
  • (2020)Java后端开发----(面试题和笔试题)
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (C语言)球球大作战
  • (Git) gitignore基础使用
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (四)Linux Shell编程——输入输出重定向
  • (一)Dubbo快速入门、介绍、使用
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)socket Aio demo
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET CORE Aws S3 使用
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET单元测试
  • /usr/bin/env: node: No such file or directory