Webpack入门 | 青训营笔记

【软考高级架构设计师】——2025年上半年软考真题(回忆版) a)异构计算和算法优化b)资源抽象和容器控制c)安全和隔离(大致是这个意思) 阅读详情

Webpack入门 | 青训营笔记

这是我参与「第四届青训营」笔记创作活动的的第12天。

Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。

在这里插入图片描述

从上图我们可以看出,Webpack 可以将多种静态资源 js、css、less 转换成一个静态文件,减少了页面的请求。

接下来简单为大家介绍 Webpack 的安装与使用。

安装 Webpack

在安装 Webpack 前,你的本地环境需要支持 node.js。

由于 npm 安装速度慢,推荐使用淘宝的镜像及其命令 cnpm,安装使用介绍参照:使用淘宝 NPM 镜像。

使用 cnpm 安装 webpack:

cnpm install webpack -g

创建项目

接下来我们创建一个目录 app:

mkdir app

在 app 目录下添加 runoob1.js 文件,代码如下:

// app/runoob1.js 文件
document.write("It works.");

在 app 目录下添加 index.html 文件,代码如下:

// app/index.html 文件

<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <script type="text/javascript" src="bundle.js" charset="utf-8"></script>
    </body>
</html>

接下来我们使用 webpack 命令来打包:

webpack runoob1.js bundle.js

执行以上命令会编译 runoob1.js 文件并生成bundle.js 文件,成功后输出信息如下所示:

Hash: a41c6217554e666594cb
Version: webpack 1.12.13
Time: 50ms
    Asset     Size  Chunks             Chunk Names
bundle.js  1.42 kB       0  [emitted]  main
   [0] ./runoob1.js 29 bytes {0} [built]

在浏览器中打开 index.html,输出结果如下:
在这里插入图片描述

LOADER

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

所以如果我们需要在应用中添加 css 文件,就需要使用到 css-loader 和 style-loader,他们做两件不同的事情,css-loader 会遍历 CSS 文件,然后找到 url() 表达式然后处理他们,style-loader 会把原来的 CSS 代码插入页面中的一个 style 标签中。

接下来我们使用以下命令来安装 css-loader 和 style-loader(全局安装需要参数 -g)。

cnpm install css-loader style-loader

配置文件

我们可以将一些编译选项放在配置文件中,以便于统一管理:

创建 webpack.config.js 文件,代码如下所示:

module.exports = {
    entry: "./runoob1.js",
    output: { path: __dirname, filename: "bundle.js" },
    module: { loaders: [ { test: /\.css$/, loader: "style-loader!css-loader" } ] }
};

接下来我们只需要执行 webpack 命令即可生成 bundle.js 文件。

插件

插件在 webpack 的配置信息 plugins 选项中指定,用于完成一些 loader 不能完成的工作。

webpack 自带一些插件,你可以通过 cnpm 安装一些插件。

使用内置插件需要通过以下命令来安装:

cnpm install webpack --save-dev

开发环境

当项目逐渐变大,webpack 的编译时间会变长,可以通过参数让编译的输出内容带有进度和颜色。

webpack --progress --colors

如果不想每次修改模块后都重新编译,那么可以启动监听模式。开启监听模式后,没有变化的模块会在编译后缓存到内存中,而不会每次都被重新编译,所以监听模式的整体速度是很快的。

webpack --progress --colors --watch

当然,我们可以使用 webpack-dev-server 开发服务,这样我们就能通过 localhost:8080 启动一个 express 静态资源 web 服务器,并且会以监听模式自动运行 webpack,在浏览器打开http://localhost:8080/ 或 http://localhost:8080/webpack-dev-server/ 可以浏览项目中的页面和编译后的资源输出,并且通过一个 socket.io 服务实时监听它们的变化并自动刷新页面。

// 安装
cnpm install webpack-dev-server -g
// 运行
webpack-dev-server --progress --colors
STM32入门教程:自动门控制 通过这个简单的示例,我们展示了如何使用STM32微控制器来实现一个简单的自动门控制系统。如果有物体靠近门口,我们会改变doorState的值,并使用controlServoMotor函数来控制舵机电机的转动。具体的引脚连接可以根据您的具体硬件来定,例如将红外传感器的输出引脚连接到GPIOA_PIN0引脚。同样,具体的引脚连接可以根据您的具体硬件来定,例如将舵机的控制引脚连接到GPIOA_PIN1引脚。首先,我们需要包含必要的库文件和引用。然后,我们需要定义一些函数来处理红外传感器的输入和舵机电机的输出。 阅读详情

相关推荐

STM32F103C8T6+I2C+DMA读取陀螺仪模块JY901S(硬件I2C

说明:1.本实验代码适用移植一切stm32f1系列;2.本实验使用的是外设资源硬件I2C2;3.本实验运用的是DMA单次模式,如果需要DMA的循环模式,请移步我的另一篇文章;4.本文章不提供陀螺仪校准教学,并是在没有校准陀螺仪情况下读取数据;5.本文章是作者的学习记录及心得,如有不足,欢迎指正。 总结:亲测stm32f103c8t6最小系统板通过片上外设资源I2C配合DMA读去陀螺仪模块jy901s偏航角有效。

anquanyuanqqadsy的博客 6173

webpack生成bundle.js文件出错

用webpack ./src/main.js ./dist/bundle.js 命令生成出现错误 解决办法:将webpack ./src/main.js ./dist/bundle.js 改成 webpack ./src/main.js -o ./dist/bundle.js ERROR in main Module not found: Error: Can’t resolve ‘./dist/bundle.js’ in ‘/Users/chenzhicheng/WebstormProjects/w

m0_47506450的博客 1658

Rclone替代RaiDrive?零广告免费挂载Alist WebDAV到Windows资源管理器(含自启脚本)

本文详细介绍了如何使用开源工具Rclone替代RaiDrive,实现零广告、全免费的Alist WebDAV挂载方案。通过深入解析配置参数、提供完整的自启动解决方案和解决常见问题,帮助用户在Windows资源管理器中高效管理云存储,提升使用体验。

weixin_33709364的博客 641

关于webpack打包bundle失败

关于webpack打包bundle失败 遇到的问题 这里的遇到的问题是由于webpack的版本问题,我使用的是webpack5,所以之前的打包语句:webpack .\src\main.js .\dist\bundle.js没有用了,要使用新的语句 webpack .\src\main.js -o .\dist\bundle.js 此时打包成功,但是依然遇到了警告,并且得到的也不是bundle.js文件,而是bundle.js文件夹里面的js还是main.js 而警告是要我们选择模式,所以我们创建一

yuZhenXS的博客 599

高分辨率航拍图像的目标检测切图优化策略

本文深入探讨了高分辨率航拍图像目标检测中的切图优化策略。针对大尺寸图像直接缩放导致小目标信息丢失的问题,文章详细阐述了基于重叠切割的核心方法,包括如何根据目标尺寸确定切图尺寸与重叠率,并提供了从切图到坐标还原的完整代码实现与避坑指南,有效提升检测精度与效率。

xk7n92h3p5m的博客 1114

Wincc7.5SP1 按钮操作记录(二次确认及语音播报)

Wincc 7.5 SP1 按钮操作记录生成(含二次确认及语音播报) 前面一篇文章已经介绍了“语音播报WINCC报警”,本文是之前功能的延伸,记录按钮操作记录并实现播报。 操作记录及语音播报效果 <创建消息文本> 1. 创建消息文本 消息编号100,消息等级“系统无确认”,消息类型“操作员输入消息”,消息文本“循环水泵启动操作”,其他参数默认。 消息编号101,消息等级“系

徐站的春天 1万+

webpack打包js文件的问题

前言 这里记录下webpack打包js文件的配置和遇到的问题。因环境版本等不同,解决办法未必都是通用的,仅作为大家参考之用; 我的环境配置 macOS M1 系统 webpack版本:(全局版本)webpack 5.49.0,webpack-cli 4.7.2 node版本:v14.17.4 开发工具:webstorm 学习自建目录结构 dist目录下存放的是我们webpack打包后的最终js输出文件 node_modules 是我们安装项目本地的webpack后,目录自动生成的,全局和本地的webpa

一捌柒的博客 2363

别再对着数据手册发愁了!用HFSS 2023 R2搞定ESP32-C3板载天线的阻抗匹配

本文详细介绍了如何利用HFSS 2023 R2进行ESP32-C3板载天线的阻抗匹配优化,解决实际PCB设计中常见的性能偏差问题。通过智能模型导入、科学参数扫描和量化优化流程,显著提升天线性能,适用于WIFI和蓝牙应用场景。

weixin_42523543的博客 448

Webpack打包生成bundle.js问题总结

首先先说一下我遇到的问题,图晒下面 简单来说就是webpack版本略高,旧的命令不能使用了,然后我换成了下面这个命令 很好,bundle.js文件成功生成!可喜可贺,可喜可贺,但是你注意到下面黄色的 WARNING 了嘛!被警告啦!!!! 简单来说,这个就是要你设置模式(开发模式,产品模式),具体细节我不是很了解啊,但是他警告了,那就要解决啊!看下图 打开pakcage.json文件,找到...

qq_43094463的博客 4303

自动驾驶中的多传感器融合实战:用卡尔曼滤波搞定毫米波雷达与摄像头航迹对齐

本文深入探讨了自动驾驶中多传感器融合的实战技术,重点介绍了如何使用卡尔曼滤波实现毫米波雷达与摄像头的航迹对齐。通过分析传感器特性差异、时空同步挑战及工程化实现步骤,提供了包括状态向量定义、观测矩阵设计和故障检测机制在内的完整解决方案,最终实现0.15米以内的高精度航迹对齐。

weixin_28728495的博客 411

基于深度学习的行人车辆检测与计数系统(UI界面+YOLOv8/v7/v6/v5代码+训练数据集)

从YOLOv1到最新的YOLOv8,其网络结构、训练策略和损失函数不断优化,性能持续提升。image_path, _ = QFileDialog.getOpenFileName(self, "选择图片文件", "", "Image Files (*.jpg *.png *.jpeg *.bmp)")video_path, _ = QFileDialog.getOpenFileName(self, "选择视频文件", "", "Video Files (*.mp4 *.avi *.mov *.mkv)")

YOLO 228

webpack打包生成的bundle.js文件过大的问题

问题使用webpack进行打包时,发现bundle.js竟然有2M多。解决办法网上有去除插件、提取第三方库、压缩代码等方法。还有一个比较容易忽略的原因就是开了sourcemap在生产环境中,应使用devtool: false关闭sourcemap后bundle.js的大小从2.46M降到302k参考 彻底解决 webpack 打包文件体积过大 - 简书 用webpack打包后的文件为什么会非常大?

azureternite的专栏 1万+

Vibe coding 氛围编程:编程就像聊天一样,低代码开发时代来了?

Vibe coding:编程就像聊天一样,低代码开发时代来了!

Code_流苏:在代码中寻诗意,在实践中觅真知 4809

构建webpack知识体系 | 青训营笔记

前端项目是由很多资源文件组合而成,为了保证代码的正确运行,要考虑文件之间的引用关系,必须严格按照依赖顺序书写代码,除此之外,还有很多其他问题,大大影响开发效率。为了解决这些问题,市面上出现了很多工具,如gulp、rollup、vite等,其中目前最具影响力、应用最为广泛的当属webpack。webpack本质上是一种前端资源编译、打包工具。......

weixin_49172439的博客 424

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Webpack-Plugin | 青训营笔记

theme: condensed-night-purple highlight: a11y-dark 这是我参与「第四届青训营 」笔记创作活动的的第10天 认识Plugin plugin是什么? plugin是插件的意思,通常是用于对某个现有的架构进行扩展。 webpack中的插件,就是对webpack现有功能的各种扩展,比如打包优化,文件压缩等等。 loader和plugin区...

weixin_50945128的博客 136

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Webpack知识体系 | 青训营笔记

什么是 Webpack; Webpack打包核心流程; 使用webpack

weixin_50945128的博客 157

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Webpack配置Vue | 青训营笔记

theme: condensed-night-purple highlight: a11y-dark 这是我参与「第四届青训营 」笔记创作活动的的第9天 在webpack环境中集成Vuejs 希望在项目中使用Vuejs,必然需要对其有依赖,所以需要先进行安装 注:因为我们后续是在实际项目中也会使用vue的,所以并不是开发时依赖 没有-dev npm install vue@2.5.21...

weixin_50945128的博客 108

构建 Webpack 知识体系 | 青训营

但是,依赖手工,比如有50个JS文件…操作,过程繁琐动当代码文件之间有依赖的时候,就得严格按依赖顺序书写开发与生产环境十致,难以接入TS或JS新特性比较难接入Less、Sass等工具JS、图片、CSS资源管理模型不一致这些都是旧时代非常突出的问题,对开发效率影响非常大,直到。。。

Azbtt的博客 917

Webpack-搭建本地服务器 | 青训营笔记

theme: condensed-night-purple highlight: a11y-dark 这是我参与「第四届青训营 」笔记创作活动的的第11天 搭建本地服务器 webpack提供了一个可选的本地开发服务器,这个本地服务器基于node.js搭建,内部使用express框架,可以实现我们想要的让浏览器自动刷新显示我们修改后的结果。 不过它是一个单独的模块,在webpac...

weixin_50945128的博客 95

Webpack笔记

Webpack笔记 参加字节跳动的青训营时写的笔记。这部分是范文杰老师讲的课。 插一嘴:范文杰老师的公众号Tecvan有很多干活,可以关注一下。(下面的部分有好多都有很有用的扩展链接,偷懒,就直接把老师的公众号贴出来) 1. 简介 Webpack本质上是一种前端资源编译、打包工具。 功能: 多份资源文件打包成一个Bundle 支持Less、Babel、Eslint、TypeScript 支持模块化处理css、图片等资源文件 支持HMR(热更新) 支持Tree-shaking 支持SourceMap ,

赤蓝紫の博客 1148

Vue CLI | 青训营笔记

theme: condensed-night-purple highlight: a11y-dark 这是我参与「第四届青训营 」笔记创作活动的的第16天 什么是Vue CLI 如果你只是简单写几个Vue的Demo程序, 那么你不需要Vue CLI. 如果你在开发大型项目, 那么你需要, 并且必然需要使用Vue CLI 使用Vue.js开发大型应用时,我们需要考虑代码目录结构、项目...

weixin_50945128的博客 114

Vite知识体系| 青训营

1. 浅谈构建工具 2. Vite概要介绍 3. vite 上手实战 4. Vite整体架构 5. vite进阶路线 6. 前端基本概要

Azbtt的博客 378

vue-router(七)-案例:TabBar | 青训营笔记

theme: condensed-night-purple highlight: a11y-dark 这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天 TabBar TabBar实现思路 1. 如果在下方有一个单独的TabBar组件,你如何封装 自定义TabBar组件,在APP中使用 让TabBar出于底部,并且设置相关的样式 2.TabBar中显示的内容由外界决定 ...

weixin_50945128的博客 303

结合代码实践,全面学习前端工程化

点击上方前端瓶子君,关注公众号回复算法,加入前端编程面试算法每日一题群前言前端工程化,简而言之就是软件工程 + 前端,以自动化的形式呈现。就个人理解而言:前端工程化,从开发阶段到代码发布...

我本可以容忍阳光,如果我不曾见过太阳,然而阳光已使我荒凉,成为更新的荒凉。 412

Web前端--后续学习路径

该学长对自己对学习过程资料,在语雀这个文档工具里面进行记录和整理,对学习心得,相关的技术体系,难点重点等,都做了记录。该学长记录好几百页。当然大家也可以用其他的文档工具,但重点是,从现在开始要对学习的过程进行一个记录,相关的技术总是会需要查阅和温习的。以下是往届前端方向的学长整理的资料,供大家参考。该学长后来找到了心仪的前端工作岗位。

wyhwust的博客 611

前端工程化:从开发到部署全解析

本文系统介绍了前端工程化的核心内容和主流工具。首先阐述了前端工程化的概念,涵盖开发、构建、测试、部署等全流程。重点讲解了脚手架的作用和实现原理,详细演示了如何基于Node.js搭建一个Koa项目脚手架。随后深入分析了三大构建工具:Webpack的工作原理及性能优化方案、Rollup的轻量化打包特性、以及Vite的超快编译速度原理。最后介绍了前端测试的三大类型:单元测试(Jest)、组件测试(Cypress)和端到端测试,并给出了具体实现示例。全文通过理论结合实践的方式,全面展示了现代前端工程化的技术体系和发

油墨香^-^的博客 443
上一篇: Chrome浏览器调试页面详解 | 青训营笔记
下一篇: Vite入门 | 青训营笔记
UestcXiye
博客等级 码龄8年 9032粉丝 1306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值