前端构建工具与应用程序测试

article/2025/11/3 19:26:20

1、前端构建工具

什么是前端构建?

  • 什么是构建工具
    在这里插入图片描述

自动构建工具

  • Npm Scripts(推荐)
    Npm Scripts(NPM脚本)是一个任务执行者。NPM是安装Node时附带的一个包管理器,Npm Script 则是 NPM 内置的一个功能,允许在 package.json 文件里面使用 scripts 字段定义任务。
    优点:npm scripts 的优点是内置,无需安装其他依赖
    缺点:功能太简单,虽然提供了 pre 和 post 两个钩子,但不能方便的管理多个任务之间的依赖。
  • Gulp
    Gulp 是一个基于流的自动化构建工具。除了可以管理任务和执行任务,还支持监听文件、读写文件。Gulp 被设计的非常简单,只通过下面5个方法就可以支持几乎所有构建场景:
    通过 gulp.task 注册一个任务;
    通过 gulp.run 执行任务;
    通过 gulp.watch 监听文件变化;
    通过 gulp.src 读取文件;
    通过 gulp.dest 写完文件
    Gulp 的优点:好用又不失灵活,既可以单独完成构建,也可以和其他工具搭配使用。
    缺点:集成度不高,要写很多配置后才可以用,无法做到开箱即用。

模块打包构建工具

  • Webpack(推荐)
    Webpack 是一个打包模块化的JavaScript的工具,在Webpack里一切文件皆模块,通过 loader 转换文件,通过Plugin 注入钩子,最后输出由多个模块组合成的文件。Webpack 专注于构建模块化项目。
    一切文件,如JavaScript、CSS、SCSS、图片、模板,对于Webpack 来说都是一个个模块,这样的好处是能清晰地描绘各个模块之间的依赖关系,以方便Webpack进行组合和打包,经过Webpack的处理,最终会输出浏览器能使用的静态资源。

  • Rollup
    Rollup 是一个和 Webpack 很类似但专注于ES6的模块打包工具。它的亮点在于,针对ES6源码进行 Tree Shaking,以去除那些已经被定义但没被使用的代码并进行 Scope Hoisting,以减少输出文件的大小和提升运行性能。然而 Rollup 的这些亮点随后就被 Webpack 模仿和实现了。由于 Rollup 的使用方法和 Webpakc 差不多,所以这里就不详细介绍如何使用 Rollup了,而是详细说明他们的差别:Rollup 是在Webpack 流行后出现的替代品;
    Rollup 生态链不完善,体验还不如Webpack;
    Rollup 的功能不如 Webpack 完善,但其配置和使用更简单;
    Rollup 不支持 Code Spliting, 但好处是在打包出来的代码中没有 Webpack 那段模块的加载、执行和缓存的代码。
    Rollup 在用于打包JavaScript库时比 Webpack 更有优势,因为其打包出来的代码更小、更快。但他的功能不够完善,在很多场景下都找不到现成的解决方案。

自动构建与模块打包构建的关系

  • 这两个构建工具功能上有重叠的地方,可单用,也可一起用,本质的区别没有那么清晰。
  • 自动构建:强调的是前端开发的工作流程,我们可以通过配置一系列的task,定义task处理的事务(例如文件压缩合并、雪碧图、启动server、版本控制等),然后定义执行顺序,来让gulp执行这些task,从而构建项目的整个前端开发流程。 简单说就一个Task Runner,就是用来跑一个一个任务的。
  • 模块打包:是一个前端模块化方案,更侧重模块打包,解决的是你写代码时候如何组织代码结构的问题。我们可以把开发中的所有资源(图片、js文件、css文件等)都看成模块,通过loader(加载器)和plugins(插件)对资源进行处理,打包成符合生产环境部署的前端资源。

代码风格检查与代码规范

  • Prettier
    Prettier 声称自己是一个“有态度”的代码格式化工具。 它是唯一一个全自动的“风格指南”,也就是说,Prettier 提供的配置参数非常少,几乎所有代码风格都是固定的、不可调整的,你只能接受。 这样做的好处是节省了在代码风格上争吵的时间。
    官方网站:https://www.prettier.cn/

  • ESLint
    ESLint用于检查JavaScript代码是否符合规则,由Nicholas C. Zakas在2013年创建。 ESLint中的规则是可更改的,并且可以自行定义和加载规则。 ESLint想要解决关于代码质量和代码风格的问题。 ESLint支持ECMAScript当前标准以及草案中用于未来标准的实验语法。
    官方网站:https://cn.eslint.org/docs/user-guide/getting-started

  • Standard JS
    是一个整理出目前JS 社群中所流行coding style 的Lint 工具,采直接固定规则(不须、也不可自行设定),并且能够自动修正不合规范的程式码。
    官方网站:https://standardjs.com/readme-zhcn.html

2、应用程序测试

应用测试基础

  • 单元测试:又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件
  • 集成测试:也叫组装测试或联合测试。 在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。 实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。 一些局部反映不出来的问题,在全局上很可能暴露出来。
  • 功能测试:对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能

前端测试工具

  • Jest(主推)
    Jest 是 Facebook 出品的一个测试框架,相对其他测试框架,其一大特点就是就是内置了常用的测试工具,比如自带断言、测试覆盖率工具,实现了开箱即用。
    而作为一个面向前端的测试框架, Jest 可以利用其特有的快照测试功能,通过比对 UI 代码生成的快照文件,实现对 React 等常见框架的自动测试。

  • React Testing Library(推荐)
    React Testing Library 是一个DOM 测试库,这意味着它并不会直接处理渲染的React 组件实例,而是处理DOM 元素以及它们在实际用户面前的行为。 这是一个很棒的库,(相对)易于使用,并且鼓励良好的测试实践。 当然,你也可以在没有Jest 的情况下使用它。

  • Cypress(推荐)
    cypress是比较新的一个自动化测试工具,在github的star数目前已经是22k+,天然支持UI自动化,接口自动化的无缝融合,并且自带Mock Server,拥有独特的测试流水线实现方式,且上手简单,个人可以轻易搭建起企业级的前端自动化测试框架。

  • Enzyme (推荐)
    Enzyme 是 React 的测试类库。 Enzyme 提供了一套简洁强大的 API,并通过 jQuery 风格的方式进行DOM 处理,开发体验十分友好。

  • mocha与chai
    mocha是一个javascript的测试框架,chai是一个断言库,两者搭配使用更佳,所以合称“抹茶”(其实mocha是咖啡)。 “抹茶”特点是: 简单,node和浏览器都可运行。

  • Ava
    ava是mocha的替代品。虽然 JavaScript 是单线程,但在 Node.js 里由于其异步的特性使得 IO 可以并行。AVA 利用这个优点让你的测试可以并发执行,这对于 IO 繁重的测试特别有用。另外,测试文件可以在不同的进程里并行运行,让每一个测试文件可以获得更好的性能和独立的环境。在 Pageres 项目中从 Mocha切换 到 AVA 让测试时间从 31 秒下降到 11 秒。

  • Jasmine
    Jasmine是一个行为驱动测试框架,它提供测试JavaScript 的一系列工具。


http://chatgpt.dhexx.cn/article/hyhLuVfT.shtml

相关文章

前端构建工具gulp的详细介绍以及使用

什么是 gulp为什么要用 gulp如何使用 gulp Installing Gulp Install the gulp commandInstall gulp in your devDependencies Create a gulpfileTest it out gulp API 什么是 gulp gulp 是一个前端构建工具,它能通过自动执行常见任务,比如编译预处理 CS…

去中心化的前端构建工具 — Vite

为什么要使用Vite 在浏览器中提供ES模块之前,开发人员没有以模块化方式编写JavaScript的本机机制。这就是为什么我们都很熟悉“捆绑”的概念:使用工具来抓取、处理和连接源模块到可以在浏览器中运行的文件中。 随着时间的推移,我们看到了webpack、Roll…

vite 前端构建工具

目录 一、vite 简介二、vite 语法纪要三、用 vite 创建项目1、用 vite 创建一个 react 项目2、用 vite 创建一个 vue3 项目 四、vite 和 webpack 的比较 一、vite 简介 Vite 官方中文文档 vite.config 配置文件 Vite 是一个 web 开发构建工具,由于其原生 ES 模块导入…

前端构建工具(理解+使用)

一、构建工具可以做什么? 安装 vs 做事情 1、安装包工具:例如:npm、Bower,Yeoman可以安装几乎所有的东西。 他们可以安装前端框架,比如Angular.js或者React.js。 他们可以为你的开发环境安装服务器。 他们可以安装…

前端构建工具的未来

本文作者系360奇舞团前端开发工程师 本文为翻译 原文标题:The Future Of Frontend Build Tools 原文作者:Alexander Joseph 原文链接:https://www.smashingmagazine.com/2022/06/future-frontend-build-tools/ 前端构建工具对现代前端开发者的…

对前端构建工具的一些理解

前言 最近有幸在前端团队里面做了一次关于 webpack 的技术分享。在分享的准备过程中,为了能让大家更好的理解 webpack,特意对市面上以前和现在流行的构建工具做了一个梳理总结。在整理和分享的过程中,获益匪浅,对前端构建工具有了…

前端构建工具大盘点:gulp、webpack、vite、rollup、esbuild、snowpack、babel、parcel、swc、tsc

文章目录 背景分类转译器打包器 对比gulp VS webpackBundle vs Bundleless(代表就是webpack VS vite)其他比较 个人理解总结官网 背景 做前端也有好多年了,从最早的 jQuery 时代到现在的三大框架,这过程中用到了很多构建工具&…

前端程序员常用的9大构建工具

构建工具是一个把源代码生成可执行应用程序的过程自动化的程序(例如Android app生成apk)。构建包括编译、连接跟把代码打包成可用的或可执行的形式。 在小型项目中,开发者往往手动调用构建过程,这样在大型的项目中很不实用,在构建过程中难以跟…

Git入门指南二:初次运行Git前的配置

Git入门指南二:初次运行 Git 前的配置 初次运行 Git 前的配置 Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量,正是由这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。 这些变量可以存放在以下三个…

Linux下使用Git入门

什么是版本控制 简单理解就是把文件每次的修改都记录下来,包括最初的一个版本。 在gitee上创建一个仓库 这样仓库就创建好了 gitclone 把仓库克隆到本地目录下 先选择一个目录来存放我们的仓库目录 然后把这个仓库的路径给复制上 在对应的目录下输入指令git …

Git入门级教程(轻松上手)

Git入门以及在Idea中集成使用Git 前言:当我们在团队开发的时候,我们需要一个工具来协同进行项目的完成,这个工具就是git。此博客内容是自己学习的笔记,我认为知道这些便可以轻松使用git了。 Git就是一种分布式版本控制系统 1.安装…

Git入门学习教程

Git学习 文章目录 Git学习1.简介2.工作流程图3.安装3.1 常用指令 4.环境配置4.1 查看配置4.2 配置用户名(必须)和邮箱 5.创建仓库6.基础操作指令6.1 查看状态(status)6.2 添加工作区到暂存区(add)6.3 提交暂…

【Git从入门到精通】Git入门

什么是版本控制 版本控制是一套系统,按时间记录某一个或一系列文件的变更,查看以前的特定版本。 使用版本控制系统,你可以将文件或者整个项目恢复到先前的状态,还可以对以前的文件进行对比。 本地版本控制系统 本地版本控制系…

Git入门看这一篇就够了

老规矩,在学习前我们先看一下学习框架: Tip: Git分支内容较多就放在另一篇文章中啦 目录 Git起步——版本控制 版本控制软件 版本控制软件的好处 版本控制软件的分类 Git基础 Git基础 Git中的三个区域 Git中的三种状态 基本的Git工作流程 安装…

Git入门级教程

文章目录 一.Git概述?1.什么是Git?2.通过git我们可以:3.Git工作流程图4.工作区、暂存区、版本库 概念5.Git的下载与安装6.Git代码托管服务 二.Git常用命令1.Git全局设置2.获取Git仓库:4.本地仓库操作常用命令5.远程仓库操作的常用命令5.1配置SSH钥6.分…

Git入门起步

一、关于版本控制 1.1、概念 版本控制软件:是一个用来记录文件变化,以便将来查阅特定版本修订情况的系统,因此有时也叫做“版本控制系统” 通俗的理解:把手工管理文件版本的方式,改为由软件管理文件的版本&#xff1b…

git新手入门教程

git在日常开发是经常用到的工具,也是程序员必备的技能之一。下面是一篇git的新手快速入门。 git的下载地址:https://www.git-scm.com/download/ 上面是一张简易的git流程图,下面讲讲git操作的基本命令行。 git clone $ git clone 地址 …

Git入门到精通全套教程

[声明:此文章为观看尚硅谷系列课程后本人手打整理课件] 第一章 Git概述 git是一个免费,且开源的分布式版本控制系统,可以快速高效地处理从小到大的各种项目 git易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存区域…

git 入门

git入门 一、下载安装 git官网地址Git - Downloads 二、提交仓库 1. 用户配置 $ git config --global user.name "Your Name" $ git config --global user.email "emailexample.com"name与"有空格 2. 创建文件夹,查看当前地址,创建仓库 $ m…

Git入门操作

Git简介 Git分有工作区,暂存区,本地库 Git具体命令 1. 初始化 命令: git init首先新建一个文件夹,把他当作我们要用git来管理的一个项目文件。右键点击GitBashHere 会弹出一个命令框,我们执行git init 这代表我…