【Vue】1-1、webpack的基本使用

news2024/9/28 9:29:12

一、什么是 Webpack

概念:

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

主要功能:

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

好处:

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

注意:

目前 VueReact 等前端项目基本上都是基于 webpack 进行工程化开发的。

 

二、Demo

步骤:

1)新建项目空目录,并运行 npm init -y 命令,初始化包管理配置文件 package.json

2)新建 src 源代码目录

3)新建 src -> index.html 首页和 src -> index.js 脚本文件

4)初始化首页基本结构

5)运行 npm install jquery -S 命令,安装 jquery

6)通过 ES6 模块化的方式导入 jquery,实现列表隔行变色效果

执行完 npm install jquery -S 命令后会下载 jquery,并自动把 jquery 加载到 package.json 文件中

{
  "name": "change-rows-color",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "jquery": "^3.6.0"
  }
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>隔行变色</title>
    <script src="./index.js"></script>
</head>
<body>
    <ul>
        <li>这是第 1 个li</li>
        <li>这是第 2 个li</li>
        <li>这是第 3 个li</li>
        <li>这是第 4 个li</li>
        <li>这是第 5 个li</li>
        <li>这是第 6 个li</li>
        <li>这是第 7 个li</li>
        <li>这是第 8 个li</li>
        <li>这是第 9 个li</li>
    </ul>
</body>
</html>
// 使用 ES6 导入 jquery
import $ from 'jquery'

// 定义 jquery 的入口函数
$(function(){
    // 实现功能
    $('li:odd').css('background-color','cyan');
    $('li:even').css('background-color','pink');
})

由于使用 ES6 语法导入 jquery,因浏览器兼容问题出现下列报错,可以使用 webpack ,解决浏览器兼容问题。

使用 npm install webpack@5.42.1 webpack-cli@4.9.0 -D 命令安装 webpack,并记录到 package.json 文件中  

{
  "name": "change-rows-color",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "jquery": "^3.6.0"
  },
  "devDependencies": {
    "webpack": "^5.42.1",
    "webpack-cli": "^4.9.0"
  }
}
/**
 * 开发阶段以及部署运行阶段都需要用到的包需要在命令行末尾添加“-S”或“--save”添加到“dependencies”的分支中
 * 只在开发阶段会使用到的包就需要在命令行末尾添加“-D”或“--save-dev”添加到“devDependencies”的分支中
 **/

 

三、配置 Webpack 

步骤:

1)在项目根目录中,创建名为 webpack.config.jswebpack 配置文件,并初始化如下的基本配置

module.exports = {
	mode:'development'	// mode 用来指定构建模式,可选择 development 和 production
}

2)在 package.jsonscripts 节点下,新增 dev 脚本如下:

"scripts":{
	"dev":"webpack" // scripts 节点下的脚本,可以通过 npm run 执行,例如:npm run dev
}

3)在终端中运行 npm run dev 命令,启动 webpack 进行项目的打包构建

最终效果:

 

四、mode 的可选值 

mode 节点的可选值有两个,分别是:

1)development

  • 开发环境

  • 不会对打包生成的文件进行代码压缩和性能优化

  • 打包速度快,适合在开发阶段使用

2)prodution

  • 生产环境

  • 会对打包生成的文件进行代码压缩和性能优化

  • 打包速度很慢,仅适合在项目发布阶段使用

 

五、webpack.config.js 文件的作用  

webpack.config.jswebpack 的配置文件。

webpack 在真正开始打包构建之前,会先读取这个配置文件,从而基于给定的配置,对项目进行打包。

由于 webpack 是基于 node.js 开发出来的打包工具,因此在它的配置文件中,支持使用 node.js 相关的语法和模块进行 webpack 的个性化配置。

六 、webpack 中的默认约定

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

  • 默认的打包入口文件为:src -> index.js

  • 默认的输出文件路径为:dist -> main.js

可以在 webpack.config.js 文件中修改打包的默认约定

webpack.config.js 配置文件中

  • 通过 entry 节点指定打包的入口

  • 通过 output 节点指定打包的出口

示例代码:  

// 导入 node.js 中专门操作路径的模块
const path = require('path')

modeule.exports = {
	entry: path.join(__dirname,'./src/index.js'),	// 打包入口文件的路径
	output:{
		path:path.join(__dirname,'./dist'),			// 输出文件的存放路径
		filename:'bundle.js'						// 输出文件的名称
	}
}

一  叶  知  秋,奥  妙  玄  心 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1414400.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一些反序列化总结

1 反序列化漏洞原理 如果反序列化的内容就是那串字符串&#xff0c;是用户可以控制的&#xff08;即变量的值&#xff09;&#xff0c;且后台不正当的使用了PHP中的魔法函数&#xff0c;就会导致反序列化漏洞&#xff0c;可以执行任意命令。Java 序列化指 Java 对象转换为字节序…

C#,数据检索算法之跳跃搜索(Jump Search)的源代码

数据检索算法是指从数据集合&#xff08;数组、表、哈希表等&#xff09;中检索指定的数据项。 数据检索算法是所有算法的基础算法之一。 本文提供跳跃搜索的源代码。 1 文本格式 using System; namespace Legalsoft.Truffer.Algorithm { public static class ArraySe…

港科夜闻|香港科大科研实力受肯定,成立三个赛马会创科实验室,推展数据科学,再生生物学及气候变化研究...

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大科研实力受肯定&#xff0c;成立三个赛马会创科实验室&#xff0c;推展数据科学、再生生物学及气候变化研究。香港科大近日获香港赛马会慈善信托基金慷慨捐助港币三千万元&#xff0c;成立三个赛马会创科实验室&…

微信小程序(十七)自定义组件生命周期(根据状态栏自适配)

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.获取手机状态栏的高度 2.验证attached可以修改数据 3.动态绑定样式数值 源码&#xff1a; myNav.js Component({lifetimes:{//相当于vue的created,因为无法更新数据被打入冷宫created(){},//相当于vue的mount…

java------抽象类和接口【详解】

目录 一.抽象类 1.1抽象类的定义&#xff1a; 1.2抽象类的语法&#xff1a; 1.3 抽象类的特性&#xff1a; 二.接口 2.1接口概念&#xff1a; 2.2 接口的语法&#xff1a; 2.3接口的使用&#xff1a; 2.4接口的特性&#xff1a; 2.5多个接口的实现&#xff1a; 2.6抽象…

接口测试怎么测?接口测试的流程和步骤(超详细)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;薪资嘎嘎涨 一、什么是接口测试 我们要想知道接口测试怎么做&#xff0c;首先要明白接口测试是什么?一般…

Tomcat怎么优化

目录 性能方面的优化&#xff1a; 安全方面的优化&#xff1a; 引言&#xff1a;面试官问到的Tomcat怎么优化&#xff0c;这两个方面直接得到他认可&#xff01;&#xff01; 性能方面的优化&#xff1a; 内存优化&#xff1a;-Xms java虚拟机初始化时的最小内存、-Xmx java虚…

C++多态深度剖析

文章目录 1. 前言2. 多态的概念及定义2.1 概念2.2 多态的构成条件2.3 虚函数2.4 虚函数的重写2.5 override 和 final2.5 重载、覆盖(重写)、隐藏&#xff08;重定义&#xff09;的对比 3. 抽象类3.1 概念3.2 接口继承和实现继承 4. 多态的原理4.1 虚函数表4.2 多态的原理4.3 动…

《30天自制操作系统》 第一周(D1-D7) 笔记

前言&#xff1a;这是我2023年5月份做的一个小项目&#xff0c;最终是完成了整个OS。笔记的话&#xff0c;只记录了第一周。想完善&#xff0c;却扔在草稿箱里许久。最终决定&#xff0c;还是发出来存个档吧。 一、汇编语言 基础指令 MOV: move赋值&#xff0c;数据传送指令…

UE4 CustomDepthMobile流程小记

原生UE opaque材质中获取CustomDepth/CustomStencil会报错 在其Compile中调用的函数中没有看到报错逻辑 材质节点的逻辑都没有什么问题&#xff0c;所以看一下报错 在HLSLMaterialTranslator::Translate中 修改之后 mobile流程的不透明材质可以直接获取SceneTexture::customd…

Pyroch中transforms 图像增强发方法的应用

1 应用场景 在我们训练模型的时候&#xff0c;有的时候数据不够&#xff0c;就需要通过水平翻转、垂直翻转、镜像、旋转、改变亮度、标准化等方式增加图像的多样性&#xff0c;此时可以调用Pytorch 中的Transforms完成这些操作 2 导入相应的库 from torchvision import tran…

蓝桥杯-sort排序(上)

sort排序 &#x1f388;1.算法说明&#x1f388;2.例题&#x1f52d;2.1例题一&#x1f52d;2.2例题二&#x1f52d;2.3例题三&#x1f52d;2.4例题四&#x1f52d;2.5例题五&#x1f52d;2.6例题六 &#x1f388;1.算法说明 &#x1f50e;对于一个数组&#xff0c;通过对数组中…

【html+css+js】实现图片轮播效果

简单实现 <html><head><style type"text/css">*{background-color:green;}#lunbo{ width:600px; height:600px;position:relative;left:100px;top:50px;} //定义轮播图片所显示的位置ul{width:100%; height:100%; position:relative;left:0px;top…

基于 SpringBoot+Vue 的读书笔记共享平台的研究与实现,附源码,文档

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

K8s 安装部署-Master和Minion(Node)文档

K8s 安装部署-Master和Minion(Node)文档 操作系统版本&#xff1a;CentOS 7.4 Master &#xff1a;172.20.26.167 Minion-1&#xff1a;172.20.26.198 Minion-2&#xff1a;172.20.26.210&#xff08;后增加节点&#xff09; ETCD&#xff1a;172.20.27.218 先安装部署ETC…

如何用GPT快速写论文?

详情点击链接&#xff1a;如何用GPT快速写论文&#xff1f; 第一&#xff1a;2024年AI领域最新技术 1.OpenAI新模型-GPT-5 2.谷歌新模型-Gemini Ultra 3.Meta新模型-LLama3 4.科大讯飞-星火认知 5.百度-文心一言 6.MoonshotAI-Kimi 7.智谱AI-GLM-4 第二&#xff1a;Op…

CVE-2024-23897 Jenkins 任意文件读取漏洞

项目介绍 Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件项目可以进行持续集成。Jenkins是开源CI&CD软件领导者&#xff0c; 提供超过1000个插…

以太网的 MAC 层

目录 1. MAC 层的硬件地址 48 位的 MAC 地址 2. MAC 帧的格式 以太网 V2 的 MAC 帧格式 无效的 MAC 帧 IEEE 802.3 MAC 与以太网 V2 MAC 帧格式的区别 1. MAC 层的硬件地址 硬件地址又称为物理地址&#xff0c;或 MAC 地址。 IEEE 802 标准为局域网规定了一种 48 位…

多维数组的使用

1. 数组的概念 数组(Array)&#xff1a;是多个相同类型数据按一定顺序排列的集合&#xff0c;并使用一个名字命名&#xff0c;并通过编号的方式对这些数据进行统一管理。 数组中的概念&#xff1a; – 数组名 – 下标&#xff08;或索引&#xff09; – 元素 – 数组的长度 …

flink-java使用介绍,flink,java,DataStream API,DataSet API,ETL,设置 jobname

1、环境准备 文档&#xff1a;https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/ 仓库&#xff1a;https://github.com/apache/flink 下载&#xff1a;https://flink.apache.org/zh/downloads/ 下载指定版本&#xff1a;https://archive.apache.org/dist/flink…