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 的一系列工具。

前端构建工具与应用程序测试相关推荐

  1. 前端构建工具_构建工具

    前端构建工具 深度JavaScript (Deep JavaScript) Choosing a development tool based on its popularity isn't a ba ...

  2. 三大前端构建工具横评,谁是性能之王!

    点击上方"蓝色字体",选择"设为星标" 做积极向上的前端人! Vite一经发布就吸引了很多人的关注,NPM下载量一路攀升: 而在Vite之前,还有Snowpac ...

  3. 55 前端构建工具Gulp

    技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.第三方模块Gulp Gulp:基于node平台开发的前端构建工具. 前端构建工具:将机 ...

  4. npm run buil构建后页面白屏_从Npm Script到Webpack,6种常见的前端构建工具对比

    从Npm Script到Webpack,6种常见的前端构建工具对比 小编说:历史上先后出现了一系列构建工具,它们各有优缺点.由于前端工程师很熟悉JavaScript,Node.js又可以胜任所有构建需 ...

  5. 时下最流行前端构建工具Webpack 入门总结

    作者:wenjuanrao,腾讯 PCG 前端开发工程师 最近梳理了下以前 webpack 的相关开发经验,整理和总结了一份入门笔记,欢迎大家围观和批评指正. 随着 web 应用越来越复杂和庞大,前端 ...

  6. webpack前端构建工具学习总结(一)之webpack安装、创建项目

    npm是随nodeJs安装包一起安装的包管理工具,能解决NodeJS代码部署上的很多问题: 常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器 ...

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

    一.构建工具可以做什么? 安装 vs 做事情 1.安装包工具:例如:npm.Bower,Yeoman可以安装几乎所有的东西. 他们可以安装前端框架,比如Angular.js或者React.js. 他们 ...

  8. 前端构建工具-gulp !(解决浏览器缓存问题)

    一,为啥要用构建工具 项目中的js和css属于静态文件,客户端第一次访问的时候会缓存这些文件,那就意味着当我们需要改js跟css的时候,即使我们将文件中的代码改了重新发布,那么客户端也是看不到,客户端 ...

  9. Gulp.js—比Grunt更易用的前端构建工具-前端自动化

    Gulp.js-比Grunt更易用的前端构建工具 Grunt是目前最流行的前端构建工具,对前端的效率帮助非常大,但Grunt并非完美无缺,json描述任务的方式,显得过于繁琐和不够简单,对于新手来说, ...

最新文章

  1. 深度学习中的贝叶斯统计简介
  2. w3c的html4.0规范,W3C标准以及规范
  3. Qt Creator管理C ++后端对象
  4. 5912. 每一个查询的最大美丽值
  5. 【渝粤题库】广东开放大学 建筑工程概预算 形成性考核
  6. 第一阶段个人总结04
  7. 积分matlab实现
  8. 如何将mpg格式转换为mp4格式?
  9. java——jui的应用
  10. excel2010将数字变成以文本存储的数字
  11. Day18 洛谷P1321 单词覆盖还原
  12. django实现上传头像和头像展示功能
  13. HDU steps 1.2.6 Identity Card
  14. c#日期格式操作(贴吧转)
  15. STL rotate旋转算法
  16. 阿里云图数据库GraphDB上线,助力图数据处理
  17. 我的世界服务器文件夹作弊,我的世界快速抓获作弊玩家 服主必看
  18. 动态网页 —— 逆向分析法 + 案例
  19. EVGA 发布 3090 KINGPIN Hydro Copper 定制水冷显卡:23 相供电
  20. sudo or gosu

热门文章

  1. Spring 各种注解(@)的含义与认识
  2. 日期和时间的格式化定义(ISO C89)
  3. 学术论文写作的 paper、code 资源
  4. 电学 —— 家庭用电中的电学现象
  5. for 循环 and while 循环(三)
  6. html链接phpayadmain数据库,无法从Xamain.iOs和Xamarin.Android使用C#连接到MySql
  7. go token验证_GitHub - goflyfox/gtoken: 基于gf框架的token插件,通过服务端验证方式实现token认证;...
  8. python能做什么项目-Python 的练手项目有哪些值得推荐?
  9. python程序-30分钟学会用Python编写简单程序
  10. python从入门到精通pdf-跟老齐学Python+从入门到精通 PDF 下载