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

Webpack前端资源加载/打包工具

文章目录

  • 一、Webpack
    • 1、什么是Webpack
    • 2、Webpack安装
      • 2.1全局安装
      • 2.2安装后查看版本号
    • 3、创建项目
      • 3.1初始化项目
      • 3.2创建src文件夹
      • 3.3 src下创建common.js
      • 3.4 src下创建utils.js
      • 3.5 src下创建main.js
    • 4、JS打包
      • 4.1创建配置文件
      • 4.2执行编译命令
      • 4.3创建入口页面
      • 4.4测试
    • 5、CSS打包
      • 5.1安装插件
      • 5.2修改webpack.config.js
      • 5.3在src文件夹创建style.css
      • 5.4修改main.js
      • 5.5运行编译命令
      • 5.6测试

一、Webpack

1、什么是Webpack

Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。
从图中我们可以看出,Webpack 可以将多种静态资源 js、css、less 转换成一个静态文件,减少了页面的请求。
在这里插入图片描述

2、Webpack安装

2.1全局安装

npm install -g webpack webpack-cli
# 或
npm install -g webpack
npm install -g webpack-cli

2.2安装后查看版本号

webpack -v

3、创建项目

创建 webpack_pro文件夹

3.1初始化项目

进入目录,执行命令

npm init -y

3.2创建src文件夹

3.3 src下创建common.js

这里使用的是CommonJS模块化方式,这种方式不支持ES6的语法,所以不需要Babel转码

exports.info=function (str) {
document.write(str)
}

3.4 src下创建utils.js

exports.add=function (a, b) {
returna+b
}

3.5 src下创建main.js

constcommon=require('./common')
constutils=require('./utils')
common.info('Hello world!'+utils.add(100, 200))

4、JS打包

4.1创建配置文件

webpack_pro目录下创建配置文件webpack.config.js
以下配置的意思是:

读取当前项目目录下src文件夹中的main.js(入口文件)内容,分析资源依赖,把相关的js文件打包

打包后的文件放入当前目录的dist文件夹下

打包后的js文件名为bundle.js

constpath=require("path") //Node.js内置模块
module.exports= {
entry: './src/main.js', //配置入口文件
output: {
path: path.resolve(__dirname, './dist'), //输出路径,__dirname:当前文件所在路径
filename: 'bundle.js'//输出文件}
}

4.2执行编译命令

webpack --mode=development
#执行后查看bundle.js 里面包含了上面两个js文件的内容并进行了代码打包

也可以配置项目的npm运行命令,修改package.json文件

"scripts": {
//...,
"dev": "webpack --mode=development",
"prod": "webpack --mode=production"}

运行npm命令执行打包

npm run dev #开发打包
# 或
npm run prod #生产打包

4.3创建入口页面

webpack_pro目录下创建index.html,引用bundle.js

<scriptsrc="dist/bundle.js"></script>

4.4测试

浏览器中查看index.html

5、CSS打包

5.1安装插件

Webpack 本身只能处理 JavaScript 模块,如果要处理其他类型的文件,就需要使用 loader 进行转换。

Loader 可以理解为是模块和资源的转换器。

首先我们需要安装相关Loader插件,css-loader 是将 css 装载到 javascript;style-loader 是让 javascript 认识css

npm install -D style-loader css-loader 

5.2修改webpack.config.js

constpath=require("path"); //Node.js内置模块
module.exports= {
//...,
output:{
//其他配置},
module: {
rules: [  {  
test: /\.css$/,    //打包规则应用到以css结尾的文件上
use: ['style-loader', 'css-loader']}  ]  }
}

5.3在src文件夹创建style.css

body{
background:pink;
}

5.4修改main.js

在第一行引入style.css

require('./style.css')

5.5运行编译命令

npm run dev

5.6测试

浏览器中查看index.html,看看背景是不是变成粉色啦?

相关文章:

Webpack前端资源加载/打包工具

文章目录一、Webpack1、什么是Webpack2、Webpack安装2.1全局安装2.2安装后查看版本号3、创建项目3.1初始化项目3.2创建src文件夹3.3 src下创建common.js3.4 src下创建utils.js3.5 src下创建main.js4、JS打包4.1创建配置文件4.2执行编译命令4.3创建入口页面4.4测试5、CSS打包5.1…...

springcloud3 fegin实现服务调用1

一 Fegin的作用 1.1 fegin的作用 fegin是一个声明式的web服务客户端&#xff0c;让编写web服务器客户端变得非常容易&#xff0c;只需创建一个接口并在接口中添加FeginClients注解即可。 Fegin的使用方式&#xff1a;使用fegin的注解定义接口&#xff0c;调用这个接口&#…...

专业版即将支持自定义场景测试

物联网 MQTT 测试云服务 XMeter Cloud 专业版于 2022 年底上线后&#xff0c;已有不少用户试用&#xff0c;对数千甚至上万规模的 MQTT 并发连接和消息吞吐场景进行测试。同时我们也收到了希望支持更多物联网协议测试的需求反馈。 新年伊始&#xff0c;XMeter 团队全力聚焦于 …...

Process Monitor工具使用实验(23)

实验目的 学习Process Monitor实用小工具的使用&#xff0c;学会利用Process Monitor工具观察程序进程/线程、文件系统、注册表、网络连接等的活动。预备知识 Process Monitor是一个Windows系统下先进的监视工具&#xff0c;它可以显示文件系统、注册表、网络连接、进程…...

钓鱼客服到拿下服务器全过程(重点在于钓鱼添加img src)

重点总结 钓鱼时主动在变量中添加了字段&#xff0c;等待用户点击获取ip信息进行下一步资金盘plus呢 左看右看没啥东西&#xff0c;看看客服系统能不能打xss。 吊毛客服居然不在线&#xff0c;这套客服系统见过是whisper&#xff0c;之前审计过没有存储xss 但能通过伪造图片…...

【C++】list迭代器的深度剖析及模拟实现(感受类封装,类和对象的思想)

早点睡兄弟&#xff0c;别一天到晚就熬夜。 文章目录一、通过list迭代器来感受类和对象以及类封装的思想1.迭代器的特征和本质是什么&#xff1f;&#xff08;两大特征&#xff1a;类的内嵌类型&#xff0c;行为像指针。本质&#xff1a;内置类型定义的变量或自定义类型实例化…...

JavaScript 语句、注释和代码块实例集合

文章目录JavaScript 语句、注释和代码块实例集合JavaScript 语句JavaScript 代码块JavaScript 单行注释JavaScript 多行注释使用单行注释来防止执行使用多行注释来防止执行JavaScript 语句、注释和代码块实例集合 JavaScript 语句 源码 <!DOCTYPE html> <html> &…...

华为机试题:HJ103 Redraiment的走法(python)

文章目录&#xff08;1&#xff09;题目描述&#xff08;2&#xff09;Python3实现&#xff08;3&#xff09;知识点详解1、input()&#xff1a;获取控制台&#xff08;任意形式&#xff09;的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方…...

html+css 实现 熊猫样式

效果 html代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compatible"…...

Vue基础19之插槽

Vue基础19插槽不使用插槽App.vueCategory.vue默认插槽&#xff1a;slotApp.vueCategory.vue具名插槽App.vueCategory.vue作用域插槽App.vueCategory.vue总结插槽 不使用插槽 App.vue <template><div class"bg"><Category :listData"food"…...

[Gin]框架底层实现理解(一)

前言&#xff1a;路由原理———压缩字典 这边简单讲一下gin非常重要的一个基点&#xff0c;也就是他作为go web框架的一个亮点 也就是Trie树和压缩字典算法 gin 通过树来存储路由&#xff0c;讲路由的字符拆解为一个个的结点&#xff0c;在获取handler函数时&#xff0c;会…...

css3横向无限公告消息滚动功能

html部分 {{item}}css部分 .boxingeds{ display: flex; flex-wrap: wrap; width: 150%; position: relative; left: 1000rpx; padding: 30rpx 0; position: absolute; top: 23%; z-index: 2; -webkit-animation: myfirst 30s linear 2s infinite; .textname{ display: inlin…...

【Git】Git工作流程及使用

Git工作流程及使用Git工作流程与常用命令Git工作流程Git常用命令项目中使用Git的场景需求开发前的分支拉取流程&#xff0c;需求开发后的分支合并流程分支合并出现冲突如何解决线上出现事故代码如何回退Git工作流程与常用命令 Git工作流程 workspace&#xff1a;工作区 stagin…...

降本增效,合作伙伴营销助力业绩增长

事实上&#xff0c;SaaS品牌透过“推荐奖励计划” 带来的业务营收平均占比高达 30%。例如&#xff0c;Evernote超过11300万用户通过老用户推荐来到Everote&#xff1b;Trello每日注册用户中有35%来自用户推荐&#xff1b;PayPal自从推行“推荐奖励计划”以来&#xff0c;用户日…...

【独家】华为OD机试 - 运动会(C 语言解题)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明本期…...

【每天学习一点新知识】JNDI注入

什么是JNDIJNDI是Java的一种API&#xff0c;为我们提供了查找和访问各种命名和目录服务的通用统一的接口。通过JNDI统一接口我们可以来访问各种不同类型的服务&#xff0c;例如远程方法调用&#xff08;RMI&#xff09;&#xff0c;通用对象请求代理体系结构&#xff08;CORBA&…...

Transwarp KunDB 实施方案

星环科技 KunDB 实施方案方案描述优点缺点定期全量逻辑备份基于kundb导入导出工具&#xff0c;定期向kundb导出全量的逻辑数据,恢复时向kundb导入最近全量的逻辑数据。如每天00&#xff1a;00进行一次全量逻辑备份。1. 数据可视化2.方便问题排查3.还原失败不影响数据库的运行状…...

Redis学习之主从复制(八)

这里写目录标题一、主从复制简介1.1原理1.2 主从复制的作用二、主从复制工作流程2.1 建立连接2.1.1 master和slave连接流程2.1.2 master和slave互联2.1.3主从断开连接&#xff08;了解&#xff09;2.1.4 授权访问&#xff08;了解&#xff09;2.2 数据同步2.3 命令传播2.3.1 命…...

mysql8.0安装

创建文件 mkdir /usr/local/mysql mkdir /usr/local/mysql/data cd /usr/local/mysql 下载 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 解压 xz -d mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz tar xvf mysql-8.0.20-…...

前端经典面试题(有答案)

代码输出结果var a 10var obj {a: 20,say: () > {console.log(this.a)}}obj.say() var anotherObj { a: 30 } obj.say.apply(anotherObj) 输出结果&#xff1a;10 10我么知道&#xff0c;箭头函数时不绑定this的&#xff0c;它的this来自原其父级所处的上下文&#xff0c…...

java+uniapp集成unipush2实现消息推送

一、开通uniPush2.0 1.实名认证 登录DCloud开发者中心&#xff0c;通过实名认证 2.进入UniPush控制台 HBuilderX中打开项目的manifest.json文件 导航在“App模块配置” → 项的“Push(消息推送)” → “UniPush”下点击配置 或者申请开通。 3.配置应用信息 在UniPush开通界面…...

技术决策的后悔药:选型错误后的补救策略

在软件测试的全生命周期中&#xff0c;技术选型是影响测试效率、质量与项目成败的关键环节。小到一款测试工具的挑选&#xff0c;大到整个测试框架的搭建&#xff0c;每一次决策都如同在迷雾中航行&#xff0c;稍有不慎便可能驶入“选型错误”的漩涡。当测试环境兼容性问题频发…...

003、LVGL与其他GUI库对比

LVGL与其他GUI库对比:从一次内存泄漏调试说起 去年做一款智能家居中控屏,选了某款轻量级GUI库,跑了两周发现系统每隔几小时就卡死一次。用FreeRTOS的任务栈监控一看,某个绘图任务栈溢出——查了三天,发现是字体缓存没释放,每次切换界面都偷偷吃掉几百字节。后来换成LVGL…...

【LeetCode 手撕算法】(二分查找)搜索插入位置、搜索二维矩阵、查找数组相同的所有位置、搜索旋转排序数组、旋转升序数组的最小值

复杂度为O(log n)且有序用二分查找35-搜索插入位置思路&#xff1a;二分查找&#xff0c;左右指针 求中间值注意&#xff1a;while的查询条件是>class Solution {public int searchInsert(int[] nums, int target) {int left0;int rightnums.length-1;while(left<right){…...

自感痕迹论的思想史意义:一场发生学范式的四维跃迁

自感痕迹论的思想史意义&#xff1a;一场发生学范式的四维跃迁摘要在当代思想版图中&#xff0c;人文精神与科学技术正处于前所未有的割裂状态。一方面&#xff0c;现象学、后结构主义在解构了宏大叙事后&#xff0c;陷入相对主义与操作空转的泥淖&#xff1b;另一方面&#xf…...

AI大模型选型生死线(2026企业级部署避坑指南)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI大模型选型生死线&#xff08;2026企业级部署避坑指南&#xff09; 企业在2026年落地AI大模型时&#xff0c;选型失误的代价已远超算力采购成本——模型架构错配、上下文长度硬伤、商用许可证模糊、推…...

FanControl完整指南:3步掌握Windows风扇控制,告别噪音烦恼

FanControl完整指南&#xff1a;3步掌握Windows风扇控制&#xff0c;告别噪音烦恼 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/Git…...

Encaustic不是滤镜!揭秘热蜡媒介物理特性如何反向重构MJ提示词结构:材料科学×AIGC的跨学科实践

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Encaustic不是滤镜&#xff01;——热蜡媒介的本质祛魅 Encaustic&#xff08;热蜡绘画&#xff09;常被误认为是数字图像处理中的一种“复古滤镜”&#xff0c;实则是一种拥有两千多年历史的实体绘画媒…...

太流批了,发票合并神器

今天给大家推荐两款软件&#xff0c;一款是图片转PDF&#xff0c;一款是发票合并工具。有需要的小伙伴可以下载收藏。 第一款&#xff1a;png2pdf png2pdf是一款png图片转PDF的小工具&#xff0c;这类的工具之前也有推荐过&#xff0c;但是今天这款比较特殊。 只要把图片拖入软…...

AD7606模块的20kHz高速采样怎么玩?深入对比带缓存与不带缓存的两种采集模式

AD7606模块20kHz高速采样的工程实践&#xff1a;带缓存与无缓存模式深度解析 在工业自动化、电力监测和振动分析等领域&#xff0c;多通道高速数据采集系统常面临一个关键抉择&#xff1a;如何在有限的处理器资源下实现最优的采样性能&#xff1f;AD7606作为一款经典的八通道16…...