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

41-Vue-webpack基础

webpack基础

      • 前言
      • 什么是webpack
      • webpack的基本使用
      • 指定webpack的entry和output


前言

  • 本篇开始来学习下webpack的使用

什么是webpack

  • webpack: 是前端项目工程化的具体解决方案。

  • 主要功能:它提供了友好的前端模块化开发支持,以及代码压缩混淆、处理浏览器端 JavaScript 的兼容性、性能优化等强大的功能。

  • 好处:让程序员把工作的重心放到具体功能的实现上,提高了前端开发效率和项目的可维护性

webpack的基本使用

  1. 新建项目空白目录(change_coloe),并运行 npm init –y 命令,初始化包管理配置文件 package.json
    在这里插入图片描述

  2. 新建 src 源代码目录

  3. 新建 src -> index.html 首页和 src -> index.js 脚本文件
    在这里插入图片描述

  4. 初始化首页基本的结构

说明:
1. 快捷生成html基本结构: ! + tab (英文输入法下)
2. 快速生成9个li 标签 :ul>li{这是第$个}*9

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>修改行颜色</title>
</head>
<body><ul><li>这是第1个</li><li>这是第2个</li><li>这是第3个</li><li>这是第4个</li><li>这是第5个</li><li>这是第6个</li><li>这是第7个</li><li>这是第8个</li><li>这是第9个</li></ul>
</body>
</html>
  1. 运行 npm install jquery –S 命令,安装 jQuery

说明:

  1. -S 是 --save简写 ,作用明确包的位置在dependencies中,可省略

在这里插入图片描述
在这里插入图片描述

  1. 通过 ES6 模块化的方式导入 jQuery,实现列表隔行变色效果
// index.js文件中
// 1. ES6语法导入jqueryimport $ from 'jquery'// 2. 定义 jQuery 的入口函数
$(function () {// 3. 实现奇偶行变色// 奇数行为红色  偶数行粉色~$('li:odd').css('background-color', 'red')$('li:even').css('background-color', 'pink')})
  1. 在项目中安装 webpack

说明:

  1. -D 是 --save-dev 的简写,明确包位置在devDependencies中,
  2. dependencies 是开发和上线都会用到的包;devDependencies是开发阶段使用到的包
npm install webpack@5.42.1 webpack-cli@4.7.2 -D

在这里插入图片描述

  1. 在项目中配置webpack文件
    • 在项目根目录中,创建名为 webpack.config.js 的 webpack 配置文件,并初始化如下的基本配置
    module.exports = {// mode 代表 webpack 运行的模式,可选值有两个 development 和 production// 结论:开发时候一定要用 development,因为追求的是打包的速度,而不是体积;// 反过来,发布上线的时候一定能要用 production,因为上线追求的是体积小,而不是打包速度快!mode: 'development',
    }
    
    • 在 package.json 的 scripts 节点下,新增 dev 脚本如下
      "scripts": {"dev": "webpack" // 可以通过npm run 运行,如 npn run dev}
    
    • 在项目目录下执行 npm run dev 命令,启动 webpack 进行项目的打包构建
      在这里插入图片描述
  • 说明:webpack.config.js 作用:是 webpack 的配置文件。webpack 在真正开始打包构建之前,会先读取这个配置文件,
    从而基于给定的配置,对项目进行打包
  1. 在index.html中导入打包生成的main.js
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>修改行颜色</title><script src="../dist/main.js"></script>
</head>
<body><ul><li>这是第1个</li><li>这是第2个</li><li>这是第3个</li><li>这是第4个</li><li>这是第5个</li><li>这是第6个</li><li>这是第7个</li><li>这是第8个</li><li>这是第9个</li></ul>
</body>
</html>

效果如下图
在这里插入图片描述

指定webpack的entry和output

在 webpack 4.x 和 5.x 的版本中,有如下的默认约定:

  1. 默认的打包入口文件为 src -> index.js
  2. 默认的输出文件路径为 dist -> main.js
  • 在 webpack.config.js 配置文件中,通过 entry 节点指定打包的入口。通过 output 节点指定打包的出口
const path = require('path')module.exports = {mode: 'development',// entry: '指定要处理哪个文件'    __dirname当前文件目录entry: path.join(__dirname, './src/index1.js'),// 指定生成的文件要存放到哪里output: {// 存放的目录path: path.join(__dirname, 'dist'),// 生成的文件名filename: 'bundle.js'}
}

相关文章:

  • 6、kubenetes 卷
  • RAFT:让大型语言模型更擅长特定领域的 RAG 任务
  • nodejs的线程模型和libuv库的基本使用
  • Swagger3探索之游龙入海
  • golang kafka sarama 源码解析
  • 基于SpringBoot后端实现连接MySQL数据库并存贮数据
  • Linux 在线yum安装: PostgreSQL 15.6数据库
  • 【Leetcode】单链表常见题
  • 蓝桥杯练习题总结(三)线性dp题(摆花、数字三角形加强版)
  • Gitlab的流水线任务【实现每小时自动测试 dev分支的更新】
  • 大数据Hadoop生态圈体系视频课程
  • uniapp自定义导航栏左中右内容和图标,以及点击事件
  • 【Docker】Docker资源(创建容器)CPU/内存/磁盘IO/GPU限制与分配教程
  • IOS面试题编程机制 6-10
  • 【Java程序设计】【C00373】基于(JavaWeb)Springboot的社区疫情返乡管控系统(有论文)
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • const let
  • C语言笔记(第一章:C语言编程)
  • fetch 从初识到应用
  • JavaScript对象详解
  • mysql常用命令汇总
  • session共享问题解决方案
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • tab.js分享及浏览器兼容性问题汇总
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 搭建gitbook 和 访问权限认证
  • 工程优化暨babel升级小记
  • 如何设计一个比特币钱包服务
  • 实现简单的正则表达式引擎
  • 怎么将电脑中的声音录制成WAV格式
  • 数据可视化之下发图实践
  • ​iOS安全加固方法及实现
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • ###项目技术发展史
  • #HarmonyOS:Web组件的使用
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (31)对象的克隆
  • (pojstep1.1.2)2654(直叙式模拟)
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • . Flume面试题
  • .net 7 上传文件踩坑
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET运行机制
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • 。Net下Windows服务程序开发疑惑
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @Async注解的坑,小心
  • @Autowired多个相同类型bean装配问题
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [BZOJ4554][TJOI2016HEOI2016]游戏(匈牙利)