前端构建工具(webpackvite)

这里写目录标题

  • 构建工具
    • webpack介绍
      • 配置文件简介
      • entry
      • output
      • loader
      • babel
      • 插件
      • 开发服务器(webpack-dev-server)
      • soureMap
  • vite

构建工具

当我们习惯了在node中编写代码的方式后,在回到前端编写html、css、js这些东西会感觉到各种的不便。比如:不能放心的使用模块化规范(浏览器兼容性问题)、即使可以使用模块化规范也会面临模块过多时的加载问题。我们就迫切的希望有一款工具可以对代码进行打包,将多个模块打包成一个文件。这样一来即解决了兼容性问题,又解决了模块过多的问题。构建工具就起到这样一个作用,通过构建工具可以将使用ESM规范编写的代码转换为旧的JS语法,这样可以使得所有的浏览器都可以支持代码。

webpack介绍

src 是把所有的源码放在了这个src 里面。
我们使用打包工具的前提是这个项目得是一个node项目,所以我们在使用webpack要先把项目初始一下 yarn init -y,会出现一个package.json,初始化就完事了。然后就安装依赖 yarn add -D webpack webpack-cli. -D表示的是开发依赖,区分一下是开发的时候要用的还是运行的时候要用的。然后再项目中创建src 目录,然后编写代码,index.js是默认主目录,是入口文件。然后执行‘’yarn webpack 来对代码进行打包,打包好观察dist目录。dist目录就是打包后的版本。dist目录里有个main.js,就是打包后的代码,index.js是源码。在这里插入图片描述webpack-cli 是命令行工具,没有安装不能用yarn webpack打包。

配置文件简介

webpack.config.js是给node.js看的,所以要遵循node的模块化规范。怎么区分,src 以内的遵循前端规则,src以外的遵循node的开发规范。在这里插入图片描述

entry

在这里插入图片描述
entry 是用来指定打包时的主文件(入口文件 ) 默认是 ./src/index.js。一般不改。在这里插入图片描述

output

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

loader

webpack默认情况下,只会处理js文件,如果我们希望它可以处理其他类型的文件,则要为期引入loader。loader 让 webpack 能够去处理其他类型的文件(默认只能处理js文件),并将它们转换为有效 模块,以供应用程序使用,以及被添加到依赖图中。
使用步骤:
1.安装对应的loader: yarn add css-loader style-loader -D.
2.配置方式:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
css-loader 只负责打包,style-loader 负责渲染生效【单一职责原则】
loader 执行顺序为从后向前执行,因此use的数组顺序不能调换

babel

在编写js代码时,经常需要使用一些js中的新特性,而新特性在旧的浏览器中兼容性并不好。此时就导致我们无法使用一些新的特性。babel就是这样一个工具,可以将新的js语法转换为旧的js,以提高代码的兼容性。

使用步骤
1.安装 npm install -D babel-loader @babel/core @babel/preset-env
在这里插入图片描述
2.配置

module: {rules: [{test: /\.m?js$/,exclude: /(node_modules|bower_components)/,use: {loader: 'babel-loader',options: {presets: ['@babel/preset-env']}}}]
}

3.在package.json中设置兼容列表
在这里插入图片描述

插件

在这里插入图片描述
常用插件
html-webpack-plugin
这个插件可以在打包代码后,自动在打包目录生成html页面
使用步骤:
1.安装依赖 yarn add -D html-webpack-plugin
2.引入依赖 const HTMLPlugin = require(“html-webpack-plugin”)
3.配置插件
在这里插入图片描述

开发服务器(webpack-dev-server)

安装:yarn add -D webpack-dev-server
启动:yarn webpack server–open(–open 表示启动服务器后自动打开浏览器)
配置 webpack-watch 执行,(在本地文件夹中访问)代码发生变化时自动更新打包。在这里插入图片描述
可以在package.json中配置
1.先用yarn add-D webpack-dev-server 安装一下
2.就可以启动了,在命令行打yarn webpack server
3.就会把我们的代码布置在一个服务器中
4.直接访问这个地址就行了
在这里插入图片描述
注意:在执行开发服务器之后,一定要在手动的执行yarn webpack,然后才能把打包的东西放在服务器里,不然可能拿到的不是最新的

soureMap

devtool:“inline-source-map” 把我们的源码和编译后的这种代码给我们做成了一个映射
在这里插入图片描述

vite

概念
vite也是前端的构建工具
相较于webpack,vite采用了不同的运行方式:
开发时,不对代码打包,而是采用ESM(ES模块)的方式来运行项目
在项目部署时,再对项目进行打包
vite的速度比webpack要快很多,使用也很方便(都配置好了)
本质上vite和webpack是打包工具,只是webpack比较底层,需要自己手动去配置。
ESM必须通过url加载页面(也就是通过服务器运行,不是本身文件)
基本使用
1.安装开发依赖 yarn add -D vite
2.vite的源码目录默认就是项目的根目录
再页面中引入js文件的时候要指定 type = ‘module’
修改路径直接在script 标签中修改src属性正确即可(webpack需要配置)
3.开发命令:
vite 启动开发服务器
vite bulid 打包代码
vite preview 预览打包后代码
4.使用命令构建项目
在这里插入图片描述
5.使用插件
在这里插入图片描述
需要使用ES6的模块化(export default)去暴露文件(区别webpack使用require)

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

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

相关文章

ES6:JavaScript开发者的速成手册(二)

目录 前言Reflect APIProxyProxy 与 defineProperty 的区别 SymbolsGeneratorsgenerator处理异步代码 PromiseAsyncModuleAPI介绍 前言 本教程将分为两大部分深入解读ES6的精髓。将带你领略ES6的基础语法,将深入探讨ES6的高级特性,通过浅显易懂的语言和大…

UML建模案例分析-时序图和类图的消息传递

概念 类图和时序图之间的交互是通过消息,即成员函数的调用体现的。但要遵循一定的原则,可参见: 面向对象原则之一,面相对象原则之二。 例子 一个电子商务系统,会员可通过电子商务系统购买零件。具体功能需求如下&am…

防火墙组网实验配置

一、实验拓扑图: 二、实验要求: 1,DMZ区内的服务器,办公区仅能在办公时间内(9:00-18:00)可以访问,生产区的设备全天可以访问. 2,生产区不允许访问互联网,办公区和游客区允许访问互联网 3,办公区设备10.0.2.10不允许访问DMz区的FTP服务器和HTTP服务器,仅能…

分享一下我简陋的SRC兵器库

之前经常有些朋友问我挖SRC一般都用什么工具或插件,其实我之前多多少少都有分享过,今天汇总一下吧,基本上都是我目前使用率比较高的工具或插件。 0x00 首先是信息收集的攻击,我在【我挖SRC是怎么做信息收集的?】中其…

RocketMQ-六大场景实操指南

RocketMQ-六大场景实操指南 普通消息创建Topic创建Group测试消息收发 定时消息创建Topic创建Group消息发送 事务消息创建Topic创建Group消息收发 顺序消息创建Topic创建Group消息收发 另外两大场景消息异常运维体验感受初次体验给小白新手的建议进阶体验应用场景 关于云消息队列…

捷配浅谈PCB基板的导热系数如何影响性能

PCB基板的导热性重要性不言而喻,有许多材料可用作 PCB 基板,除了不同的导热性外,还提供许多其他好处。PCB 基板材料也会影响高温下对导体引起的热应力和高速/高频下的损耗。在选择超出导热系数的基板时,应考虑许多设计权衡&#x…

大模型时代:人工智能与大数据平台的深度融合

在当今的大数据时代,数据已经成为驱动业务增长和创新的关键因素。与此同时,随着人工智能技术的不断进步,AI在大规模数据处理和分析方面的能力日益强大。因此,将人工智能与大数据平台相结合,可以为企业带来巨大的商业价…

《简历宝典》07 - 发布3天就有百人订阅的《简历宝典》,做个第一阶段总结

目录 1 本篇概要 2 最初输出了糟糕的简历模板 3 简历文档名的注意事项 4 “个人信息”模块必须写的内容 5 “个人信息”模块那些非必须写的内容 5.1 校招 - 本科生 - 个人信息的展现 5.2 社招 - 专科生 - 个人信息的展现 6 最后 1 本篇概要 《简历宝典》已经输出了一…

基于Unity3D的发布第一个Rokid AR眼镜应用

发布AR眼镜Demo 一、发布配置二、快速开发第一个AR Demo场景1.创建新场景2.替换Main Camera3. 创建Capsule 三、打包apk应用四、将apk安装到Rokid Master Pro 眼镜1.WiFI-ADB连接AR Studio 与PC2.USB直连Rokid眼镜安装3.运行查看应用 五、Rokid AR系列教程 一、发布配置 UXR2.…

Github Action 自动部署更新静态网页服务

本文首发于 Anyeの小站,点击跳转 获得更优质的阅读体验 前言 贴一段胡话 在用过 应用:静态网页服务 之后,事实证明: 总而言之,自动化是一个很令人着迷的东西,摆脱重复繁琐的工作,解放了双手的…

MES:连接计划与执行的桥梁

想象一下,你的企业拥有一份完美的生产计划,但如何将这份计划准确无误地转化为实际生产中的每一步操作?这就是MES大展身手的地方。MES作为ERP(企业资源计划)与车间自动化控制之间的桥梁,确保生产计划能够顺畅…

校准报告可以引用数据与加盖CNAS章吗?

在咨询校准机构在给他们出具校准报告/证书时,是否可以引用数据,引用数据部分是不是可以加盖CNAS章? 首先,了解一下报告中带CNAS的含义:CNAS-CL01:2018 文件第一章中提出“本准则规定了实验室能力、公正性以及一致运作的…

超越单兵作战:多智能体 Multi-Agent System (MAS)

超越单兵作战:多智能体 Multi-Agent System (MAS) Multi-Agent System 是指一个系统中有多个智能体同时工作的情况。在这样的系统中,每个智能体都具有一定程度的自主性,可以独立执行任务、做决定,并且能够与其他智能体进行交互&a…

为什么贷款都看大数据信用?怎么查大数据报告?

在当今数字化时代,大数据的应用已经深入到各个领域,其中金融行业尤为突出。很多朋友都有疑问,为什么贷款总会查自己的大数据信用?去哪里查?本文就为大家详细的分析一下,一起去看看吧。 一、贷款查大数据信用的几个原因&#xff…

哪些行业更需要TPM管理咨询公司?

当下,TPM(全面生产维护)作为一种旨在提高设备效率、降低维护成本的管理理念,已经被越来越多的行业所认可和采纳。然而,不同行业因其特性和需求的不同,对TPM管理咨询公司的需求也各有侧重。下面将探讨哪些行…

3年经验的B端产品经理,应该是什么水平?

问你一个问题:你觉得3年经验的B端产品经理,应该是什么水平?很多朋友可能也没有仔细想过,自己3年后应该达到一个什么水平?能做什么体量的业务?要能拿多少薪资? 前几天和一个B端产品经理聊天&…

二手市场遗落的上古神器:蜗牛星际NAS J1900和Think Pad X230的三代超值CPU

二手市场有几件神器,比如蜗牛星际NAS套件,从2019年到现在,价格一直稳定小幅攀升,彻底打破了电脑产品价格连年下降的常规印象。 Think Pad X230配置的三代CPU,性能吊打4代、5代CPU,一直到7代,才被…

Codeforces Round 956 F. array-value 【01Trie查询异或最小值】

题意 给定一个非负整数数组 a a a 对每个长度至少为 2 2 2 的子数组&#xff0c;定义其权值为&#xff1a;子数组内两两异或值最小值 即 b ⊂ a [ l , r ] , w ( b ) min ⁡ l ≤ i < j ≤ r { a i ⨁ a j } b \subset a[l, r], \quad w(b) \min_{l \leq i < j \le…

WPF的UI布局

WPF 的 UI 布局 XAML的优点 ui和动画更专业-好用 简单易懂&#xff0c;结构清晰-易学 使设计师直接参与软件开发&#xff0c;随时沟通无需二次转化-高效 真正实现了UI和逻辑的剥离(ui集中在ui层、逻辑代码集中在程序逻辑层&#xff0c;形成高内聚低耦合的结构) XAML是一种…

Paimon下载使用和基础操作说明

简介 Apache Paimon 是一种湖格式&#xff0c;支持使用 Flink 和 Spark 构建实时湖仓一体架构 用于流式处理和批处理操作。Paimon创新性地将湖格式与LSM&#xff08;Log-structured merge-tree&#xff09;相结合 结构&#xff0c;将实时流式更新引入 Lake 架构。 Paimon提供以…