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

前端工程化-什么是构建工具

了解构建工具之前,我们首先要知道的是浏览器只认识html、css、js,而我们开发时用的vue,react框架都只是为了方便我们开发而使用的工具

使用构建工具的原因

vue或react的企业级项目里都会具备这些功能:

1.使用typescript语言:如果我们遇到ts文件我们需要使用tsc命令将typescript代码转换为js代码

2.使用react/vue:安装react-complier/vue-complier,将我们写的jsx文件或者.vue文件转换为render函数将他们转换为html、js、css

3.使用less/sass/postcss/component-style:我们又需要安装less-loader,sass-loader等一系列编译工具将他们转换为css

4.语法降级:babel-->将es5以上的新语法转换为低版本浏览器可以接受的js语法。

5.体积优化:uglifyjs ---> 将我们的代码进行压缩变成体积更小性能更高的文件

6.······

这些所有的功能在每次修改项目时都必须全部执行一遍

例如在React项目修改了App.tsx文件的内容,在编译运行到浏览器上之前,我们需要将该文件做如下的处理:

App.tsx(使用了TypeScript语言)--> 使用tsc(处理TypeScript) --> App.jsx(先转变为JavaScript语言) === App.jsx(React文件)--> React-complier(处理.jsx文件) -->js文件(直到拿到js文件)

如果没有一款帮助我们自动处理这些重复性工作的工具,是不是我们开发起来也非常麻烦呢,于是这些工具就诞生了

这个工具能够帮你把tsc,vue-complier,react-complier,less-loader,babel,uglifyjs等全部集成在一起。这样我们只需要关心我们写的代码就好了!!!一旦我们修改了某文件代码--->工具就会帮自动去调用tsc, react-compiler, less, babel, uglifyjs等其他工具并执行 --->最终直接生成浏览器能够渲染执行的html、css、 js文件。

而这个工具就叫做构建工具

生成浏览器能够渲染执行的html、css、 js文件的过程就叫做打包.

构建工具主要干了些什么

1.模块化开发支持:支持直接从node_modules里引入代码+多种模块化支持

import vue from 'vue'; //浏览器并不认识这样的文件引入方式,它只认识绝对路径和相对路径的引入方式。所以这里构建工具就需要对他进行处理。将'vue'转变为'./vue'等等。

2.处理代码兼容性:比如babel语法降级,less、ts语法转换(不是构建工具做的,构建工具将这些语法对应的处理工具集成进来自动化处理)

3.提高代码性能:压缩文件,代码分割

4.优化开发体验:

构建工具会帮你自动监听文件的变化,当文件变化以后会自动帮你调用对应的集成工具进行重新打包,然后再浏览器重新运行(整个过程叫做热更新,hot replacement)

开发服务器:跨域的问题,用react-cli,create-react-element,vue-cli解决跨域的问题

每次改一点 ---> 这个顺序还不能错

构建工具它让我们可以不用每次都关心我们的代码再浏览器如何运行,我们只需要首次给构建工具提供一个配置文件(这个配置文件也不是必须的,如果你不给他,他会有默认的帮你去处理),有了这个集成的配置文件以后,我们就可以在下次需要更新的时候调用一次对应的命令就好了,如果我们再结合热更新, 我们就更加不需要管任何东西, 这就是构建工具去做的东西, 他让我们不用关心生产的代码也不用关心代码如何在浏览器运行, 只需要关心我们的开发怎么写的爽怎么写就好了

相关文章:

前端工程化-什么是构建工具

了解构建工具之前,我们首先要知道的是浏览器只认识html、css、js,而我们开发时用的vue,react框架都只是为了方便我们开发而使用的工具 使用构建工具的原因 vue或react的企业级项目里都会具备这些功能: 1.使用typescript语言&…...

01-论文阅读-Deep learning for anomaly detection in log data: a survey

01-论文阅读-Deep learning for anomaly detection in log data: a survey 文章目录 01-论文阅读-Deep learning for anomaly detection in log data: a survey摘要I 介绍II 背景A 初步定义B 挑战 III 调查方法A 搜索策略B 审查的功能 IV 调查结果A 文献计量学B 深度学习技术C …...

图像处理02 matlab中NSCT的使用

06 matlab中NSCT的使用 最近在学习NSCT相关内容,奈何网上资源太少,简单看了些论文找了一些帖子才懂了一点点,在此分享给大家,希望有所帮助。 一.NSCT流程 首先我们先梳理一下NSCT变换的流程,只有清楚流程才更好的理清…...

提升办公效率,畅享多功能办公笔记软件Notion for Mac

在现代办公环境中,高效的笔记软件对于提高工作效率至关重要。而Notion for Mac作为一款全能的办公笔记软件,将成为你事业成功的得力助手。 Notion for Mac以其多功能和灵活性而脱颖而出。无论你是需要记录会议笔记、管理项目任务、制定流程指南&#xf…...

Apache Airflow (十三) :Airflow分布式集群搭建及使用-原因及

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹…...

# 聚类系列(一)——什么是聚类?

目前在做聚类方面的科研工作, 看了很多相关的论文, 也做了一些工作, 于是想出个聚类系列记录一下, 主要包括聚类的概念和相关定义、现有常用聚类算法、聚类相似性度量指标、聚类评价指标、 聚类的应用场景以及共享一些聚类的开源代码 下面正式进入该系列的第一个部分&#xff…...

Android DatePicker(日期选择器)、TimePicker(时间选择器)、CalendarView(日历视图)- 简单应用

示意图&#xff1a; layout布局文件&#xff1a;xml <?xml version"1.0" encoding"utf-8"?> <ScrollView xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"…...

linux环境搭建mysql5.7总结

以下安装方式&#xff0c;在阿里云与腾讯云服务器上都测试可用。 一、进入到opt目录下&#xff0c;执行&#xff1a; [rootmaster opt]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz解压&#xff1a; [rootmaster opt]#…...

SQL Server Count()函数

SQL Server Count()函数 SQL Server COUNT() 是一个聚合函数&#xff0c;它返回在集合中找到的项目数。 COUNT() 函数语法&#xff1a; COUNT([ALL | DISTINCT ] expression)ALL 指示COUNT() 函数应用于所有值。ALL是默认值。返回非NULL值的数量&#xff08;包括重复值&…...

架构探索之路-第一站-clickhouse | 京东云技术团队

一、前言 架构, 软件开发中最熟悉不过的名词, 遍布在我们的日常开发工作中, 大到项目整体, 小到功能组件, 想要实现高性能、高扩展、高可用的目标都需要优秀架构理念辅助. 所以本人尝试编写架构系列文章, 去剖析市面上那些经典优秀的开源项目, 学习优秀的架构理念来积累架构设…...

易航网址引导系统 v1.9 源码:去除弹窗功能的易航网址引导页管理系统

易航自主开发了一款极其优雅的易航网址引导页管理系统&#xff0c;后台采用全新的光年 v5 模板开发。该系统完全开源&#xff0c;摒弃了后门风险&#xff0c;可以管理无数个引导页主题。数据管理采用易航原创的JsonDb数据包&#xff0c;无需复杂的安装解压过程即可使用。目前系…...

创新无界:通义灵码在测试过程中展现的独特魅力

通义灵码基于通义大模型&#xff0c;提供代码智能生成、研发智能问答能力。本文就来介绍下通义灵码在测试过程中的应用。 操作手册&#xff1a; 通义灵码, 阿里云提供的一款基于通义大模型的智能编码辅助工具_云效-阿里云帮助中心 1. 什么是通义灵码 是阿里云出品的一款基于通…...

crmchat安装搭建教程文档 bug问题调试

一、安装PHP插件&#xff1a;fileinfo、redis、swoole4。 二、删除PHP对应版本中的 proc_open禁用函数。 一、设置网站运行目录public&#xff0c; 二、设置PHP版本选择纯静态。 三、可选项如有需求则开启SSL,配置SSL证书&#xff0c;开启强制https域名。 四、添加反向代理。 …...

Golang http 请求如何设置代理

ENV golang 1.17 使用代理 需要在创建 http client 的时候设置&#xff0c;使 http 库能够捕获环境变量 示例 func newClient(cert tls.Certificate) (*http.Client, error) {config : &tls.Config{Certificates: []tls.Certificate{cert},}config.BuildNameToCertific…...

电子眼与无人机在城市安防中的协同应用研究

随着城市化进程的快速推进&#xff0c;城市安全问题成为了人们关注的焦点。传统的安防手段已经无法满足现代城市复杂多变的安全需求。因此&#xff0c;结合电子眼与无人机技术&#xff0c;实现二者之间的协同应用&#xff0c;成为提升城市安防能力的重要途径。 一、电子眼与无人…...

LVS+keepalived——高可用集群

lvskeepalived&#xff1a;高可用集群 keepalived为lvs应运而生的高可用服务。lvs的调度器无法做高可用&#xff0c;于是keepalived这个软件。实现的是调度器的高可用。但是&#xff1a;keepalived不是专门为lvs集群服务的&#xff0c;也可以做其他代理服务器的高可用。 lvs的…...

使用 AWS boto3 库从 s3 桶中批量下载数据

文章目录 一、Boto3 快速安装二、账户配置三、代码示例3.1 下载单个文件3.2 下载文件夹内全部文件 官方文档 一、Boto3 快速安装 安装 Boto3 之前&#xff0c;先安装 Python 3.8 或更高版本&#xff1b;对 Python 3.6 及更早版本的支持已弃用。 通过 pip 安装最新的 Boto3 版…...

js ::after简单实战

::after的作用是在元素后面再加个XXX样式 工作中遇到了一个表格&#xff0c;鼠标指到单元格要有个整行编辑态的效果&#xff0c;下面写个简单的demo 有人可能会说了&#xff0c;直接修改某个单元格的hover样式不就行了嘛&#xff0c;问题是如果鼠标指到单元格和单元格直接的…...

数据结构与算法实验(黑龙江大学)

实验一 顺序存储的线性表&#xff08;2 学时&#xff09; 一、实验目的 1 、掌握线性表的逻辑结构特征。 2、熟练掌握线性表的顺序存储结构的描述方法。 3 、熟练掌握顺序表上各种基本操作的实现。 二、实验内容 1 、设线性表的数据元素都为整数&#xff0c;存放在顺序表…...

如何使用rclone将腾讯云COS桶中的数据同步到华为云OBS

在多云策略与数据迁移趋势下&#xff0c;企业往往需要将数据在不同云服务提供商之间进行迁移。本文介绍如何使用rclone工具同步腾讯云COS&#xff08;Cloud Object Storage&#xff09;桶中的数据到华为云OBS&#xff08;Object Storage Service&#xff09;。先决条件是您已经…...

AI开发之LangGraph教程2~入门

概述 这篇教程主打零基础上手&#xff0c;带大家用 LangGraph 从零搭建一款自带上下文记忆、支持自定义工具调用的智能聊天机器人。 我们都知道&#xff1a;原生大语言模型 LLM 天生无状态、无记忆&#xff0c;单独只能做简单单次问答&#xff0c;既记不住多轮聊天上下文&…...

基于MCP协议与Pydantic-AI构建智能代理:网页抓取与联网搜索实践

1. 项目概述&#xff1a;一个基于MCP协议的智能代理工具 最近在折腾AI应用开发&#xff0c;发现一个挺有意思的项目&#xff0c;来自GitHub上的 malminhas/mcp 。这是一个基于Python的智能代理工具&#xff0c;核心是利用了Model Context Protocol&#xff08;MCP&#xff0…...

如何免费下载30+文档平台内容:终极浏览器脚本指南

如何免费下载30文档平台内容&#xff1a;终极浏览器脚本指南 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#xff0c;该脚本就是为了解决您…...

如何快速掌握Switch自定义固件:面向新手的完整大气层安装指南

如何快速掌握Switch自定义固件&#xff1a;面向新手的完整大气层安装指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 还在为Switch功能单一而烦恼吗&#xff1f;大气层&#xff08;Atm…...

5款免费VLC皮肤:终极美化方案让播放器焕然一新

5款免费VLC皮肤&#xff1a;终极美化方案让播放器焕然一新 【免费下载链接】VeLoCity-Skin-for-VLC Castom skin for VLC Player 项目地址: https://gitcode.com/gh_mirrors/ve/VeLoCity-Skin-for-VLC 还在使用VLC播放器那个单调的默认界面吗&#xff1f;VeLoCity皮肤系…...

自动化机器人框架实战:从蓝图设计到生产部署

1. 项目概述&#xff1a;一个面向未来的自动化蓝图如果你和我一样&#xff0c;长期在自动化运维、CI/CD流水线或者智能设备管理领域摸爬滚打&#xff0c;那么你一定对“蓝图”这个词有着复杂的感情。一方面&#xff0c;它代表着一种优雅、可复用的解决方案框架&#xff0c;能极…...

【计算机网络】第21篇:HTTP/2与HTTP/3——二进制分帧、流多路复用与QUIC传输

目录 1. HTTP/2帧层的结构 1.1 从文本到二进制帧 1.2 流状态机的生命周期 1.3 流优先级与带宽分配 2. TCP残留的队头阻塞 2.1 问题场景的形式化 2.2 在高丢包网络中的表现 3. HTTP/3的迁移&#xff1a;从TCP到QUIC 3.1 流多路复用的下移 3.2 传输控制与加密的融合 3.…...

别让MPU6050数据坑了你:STM32H5上部署CNN人体活动识别的传感器校准与数据对齐实战

别让MPU6050数据坑了你&#xff1a;STM32H5上部署CNN人体活动识别的传感器校准与数据对齐实战 当你兴奋地将训练好的CNN模型部署到STM32H5开发板&#xff0c;准备实时识别人体活动时&#xff0c;却发现输出结果完全不符合预期——走路被识别为静坐&#xff0c;上下楼梯被误判为…...

XUnity.AutoTranslator:打破语言障碍的Unity游戏实时翻译神器

XUnity.AutoTranslator&#xff1a;打破语言障碍的Unity游戏实时翻译神器 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为看不懂的外语游戏而苦恼吗&#xff1f;XUnity.AutoTranslator为你提供了一…...

3秒获取百度网盘提取码:baidupankey智能工具终极使用指南

3秒获取百度网盘提取码&#xff1a;baidupankey智能工具终极使用指南 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘提取码而烦恼吗&#xff1f;baidupankey作为一款专业的百度网盘提取码智能获取工具&#xf…...