前端知识-工具链

news/2025/1/20 16:21:44/文章来源:https://www.cnblogs.com/khrushchefox/p/18681752

工具链

一组用于软件开发的工具和技术, 帮助开发者管理好从源代码到最终软件的整个开发过程, 对于前端来讲, 这些工具通常包括:

  • 集成开发环境, IDE

  • 包管理工具, 核心是代码组织与复用

    • npm, 兼容性最强, 速度较慢
    • yarn, 通过并行安装和缓存, 解决了npm速度慢的问题, 但资源消耗大
    • pnpm, 采用共享依赖模型, 同时解决前两者的问题, 但兼容性问题较多
    • 企业级的包管理还可以做更多, 比如
      • 应对供应链污染. 前端项目的直接供应商是NPM仓库, 一个带有bug的包发布后, 会导致本地或持续集成环境产生问题.
        因此会在开源包管理器的基础上增加对bug包的黑名单控制
      • 通过网络IO优化, FUSE, OverlayFS文件系统, 文件IO优化等跨领域技能, 进一步加速依赖安装

包管理有两个主要模式: 单包管理和多包管理. 多包管理适用于在一个代码仓库里管理多个包, 相比单包管理, 可以很方便地共享依赖, 跨包复用代码, 进行联合调试和发布.

通常采用Monorepo的方式管理多包, 比如npm自带的workspace模式, 开源方案Lerna和Rush等等

  • 构建工具, 通常包含代码转译器, 优化器, 打包器, 开发服务器和插件系统
    Webpack(2012), Rollup(2015), Parcel(2017), Vite(2020), Turbopack(2022), Rspack(2023)
    • 转译器也叫代码转换器(Transformer), 编译器(Compiler), 将源代码转换为目标平台能够直接运行的代码, 同时让一些新的语言特性能够兼容旧的环境, 比如箭头函数到普通函数的转换, JSX到JS的转换, Less到CSS的转换
    • 优化器是将转译完成的代码进一步优化, 比如压缩, 混淆和分割, 以提升传输效率和安全性
    • 打包器是将转译好的代码合并到一块, 它通常会内置转译器以及优化器, 从源代码到最终产物, 一站式完成
    • 开发服务器提供一个本地的HTTP服务器, 通过HMR, 传输原生ES模块, 接口代理等功能来提升开发体验
    • 插件系统是功能扩展的主要方式, 可以灵活地改变整个构建工具的行为, 来实现定制化需求

前端构建工具的大趋势是极致整合(减少学习负担)以及使用Rust重写核心模块(提升构建和打包效率, 缓解集成压力)

  • 调试工具

    • 浏览器开发者工具: 用于普通HTML页面的UI, 网络, 性能调试
    • 小程序开发者工具: 用于小程序模拟和真机调试
    • 接口调试工具: Postman, Charles等
    • 框架自带的调试工具: React Developer Tools, Vue Devtools等, 可以展示更为直观的虚拟DOM结构和组件状态
  • 持续集成与部署(CI/CD)工具: Github Action, Travis CI, Jenkins

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【DingTalk】JsApi 地理位置相关

最近接手同事新开的半成品项目,钉钉嵌入的地图API测试中出现了BUG 钉钉API文档见此: https://open.dingtalk.com/document/orgapp/obtain-current-geographic-location-information-single-positioning一、IOS位置获取组件无法打开 安卓手机是可以不需要JSAPI授权配置的,这点…

“国产双系统”出炉!复旦微FMQL20SM非对称AMP:Linux + 裸机

“非对称AMP”双系统是什么 AMP(Asymmetric Multi-Processing),即非对称多处理架构。“非对称AMP”双系统是指多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux + RTOS/裸机,但需一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的…

CudaSPONGE与PySAGES初步性能测试

接前一篇关于PySAGES结合CudaSPONGE使用方法的文章,本文主要还是使用了一样的测试案例。仅通过不同的测试步长,来定性的分析PySAGES的MetaDynamics实现方案结合MD软件之后的性能数据。技术背景 在前面的一篇博客中,我们介绍过CudaSPONGE的基础使用方法、CudaSPONGE调用Pytho…

记一次移动光猫(GM219-S)安全测试

前言 过个年,WiFi密码忘记了…光猫管理密码也忘记了(这个光猫也不支持物理按钮重置设置),但是手机还连着WiFi,正规操作找回不了密码,那就用咱们测试的思维来试试PWN掉这个路由器。 过程 未授权获取WiFi连接密码 还好之前没闲着,发现管理的几个未授权访问的接口如下: 获取…

Web安全测试学习手册-业务逻辑测试

首先感谢朋友倾璇的邀请 ,参与了的相关撰写,目前负责业务逻辑测试这一块的撰写,目前初步已经成型,先发出来让大家看看,欢迎点评,也可以加入我们一起来撰写~ 业务逻辑测试 介绍:这里对Web应用业务逻辑方面的安全缺陷进行介绍和常见案例讲解。 任意用户密码重置 常见的缺陷…

串口、COM口、UART口 ;TTL、 RS-232、 RS-485

串口、COM口、UART口TTL、RS-232、RS-485区别首先 串口、COM口、UART口一般指的是硬件接口。而TTL、RS-232、RS-485则是逻辑电平0和1的不同表示标准 它们区别如下:1)和RS232相比,由于RS485采用了差分传输的方式,因此抗干扰能力强很多。TTL抗干扰能力最差。2)像STM32这类单…

ML.NET 图像分类

参考文档:https://www.cnblogs.com/mq0036/p/18302572using MLNET_Image; using static MLNET_Image.MLModel1;namespace MLNET.Image {public partial class MainForm : Form{public MainForm(){InitializeComponent();}private void btnSelectImage_Click(object sender, Ev…

【医疗行业】2024中国网络安全产业势能榜优能企业「医疗行业」典型案例展示

医疗行业涉及大量敏感数据,包括患者的健康信息和医疗记录。因此,医疗数据的保护一直是行业中的重中之重。随着电子病历、远程医疗等新技术的应用,医疗行业面临着更多的网络安全威胁。在本期,我们将展示医疗行业的一些典型案例,探讨如何加强医疗数据保护,保障患者隐私和数…

海康web3.0插件开发,登录成功预览失败

做个记录,使用官方的demo,发现有登录成功,预览和回放失败,代码1000,未知错误,我遇到的情况是获取端口信息错误导致的这个是硬盘录像机原始的配置,虽然配置显示没有启用UPnP,但是插件中的默认获取的端口信息是按照这张表中的外部端口获取的,但是如果你没有启用端口映射…

Emacs 折腾日记(十)——elisp符号

符号是有名字的对象,这么说可能有点抽象。我们先来回忆一下C/C++中关于符号的内容。 C/C++ 最终被编译成机器码直接执行,在机器码中不存在变量名称,函数名称等字符,它只有一串地址。但是在写C/C++代码的时候有变量名,函数名,类名,对象名等等名称。编译器是如何做到将符号…

如何通过跨境电商流程管理工具提升项目效率?几个工具推荐

在竞争激烈的跨境电商领域,合适的工具就如同得力的助手,能够显著提升运营效率、优化业务流程,助力企业在全球市场中脱颖而出。从市场调研、选品采购,到店铺运营、营销推广以及物流管理等各个环节,都有相应的专业工具可供选择。接下来,我们将深入探讨一系列跨境电商实用工…

uniapp上传文件

1.h5不支持设置请求头,所有h5通过上述方式上传失败 2.如果前端不传图片需要用两种方式分别调用,且需要设置不同的请求头,后端需要同步更改 来源:https://blog.csdn.net/qq_23859799/article/details/126794172