首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【译】73个超棒且可提高生产力的 NPM 包

前端框架 1.React[3] React 使用虚拟 DOM 将页面的各个部分作为单独的组件进行管理,从而允许你刷新组件而不刷新整个页面。...✍ 日志 17.Morgan[38] 具体来说,它是一个 HTTP 请求记录器,存储 HTTP 请求,并为你提供有关应用程序如何使用以及可能存在潜在错误的简要信息。...27.NextJS[48] NextJS 首先支持服务器渲染以及静态生成的内容。你还可以将 serverless 功能定义为 API 端点。...测试 45.Jest[68] Jest 是一个令人愉快的 JavaScript 测试框架,专注于简洁明快。它允许你使用易于使用、熟悉且功能丰富的 API 编写测试,从而快速获得结果。...它的主要目的是将 JavaScript 文件打包以便在浏览器中使用,但它也能够转换、捆绑或打包任何资源。

5.9K30

「前端架构」Grab的前端学习指南

JavaScript框架的创建是为了在DOM上提供更高层次的抽象,允许您将状态保存在内存中,而不是DOM中。使用框架还可以重用推荐的概念和构建应用程序的最佳实践。...Jest和酶使编写前端测试变得有趣和容易。因为定义了明确的职责和接口,所以React组件和Redux操作/缩减器相对容易测试也很有帮助。...与ESLint一样,stylelint以一种非常模块化的方式设计,允许开发人员打开/关闭规则并为其编写自定义插件。...在通过npm安装安装的包中也存在不确定性的问题。我们的一些CI构建会失败,因为在CI服务器安装依赖项时,它会对一些包含中断更改的包进行小的更新。...今天的前端开发是困难的,但它也比以前更有趣。到目前为止,我们所介绍的内容将帮助任何新工程师快速掌握我们的技术。还有更多的东西需要学习,但是在本质上建立一个坚实的基础将有助于学习其余的技术。

7.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    前端自动化测试实践01—持续集成之jest自动化测试环境搭建

    具体来说,持续集成是一种软件开发实践,强调开发人员在提交新代码后立刻进行构建、自动化测试等,频繁自动将代码集成到主干和生产环境,降低一次性集成过多代码带来的风险。...[1-01.jpg] 持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的"类生产环境"中。...比如把完成单元测试的代码部署包含完整功能的预发布环境中运行更多更完整的集成测试,甚至是人工测试,通过后继续手动部署到生产环境中。..."jest --coverage" } (3) 持续监听变化,默认 o 模式 { "test": "jest --watch" } (4) 持续监听所有文件变化 { "test": "jest -...jest 现实项目中,往往不会从零搭建 jest 项目,更多的情况是,需要在一个脚手架已经搭建好的项目中引入自动化测试,此处在 vue-cli 基础上修改 jest 配置,安装好 jest 后需要修改项目根目录下的配置文件

    2.5K54

    Jest中Mock网络请求

    npm run test:demo3: 使用Jest中的库完成demo2的实现。...处理,通过npm run test:demo1即可尝试运行,实际上是将包装axios的wrap-request库进行了一个mock操作,在Jest启动时会进行编译,在这里将这个库mock掉后,所有在之后引入这个库的文件都是会获得...,所幸Jest提供了一种可以直接实现被Mock的函数库的方式,当然实际上Jest还提供了mockImplementation的方式,这个是在demo3中使用的方式,在这里我们重写了被mock的函数库,在实现的时候也可以使用...在这里就使用到了jest-axios-mock-server库,首先我们需要指定三个文件,分别对应每个单元测试文件启动前执行,Jest测试启动前执行,与Jest测试完成后执行的三个生命周期进行的操作,分别是...与afterAll生命周期启动与关闭服务器,首先这个方案我也尝试过,首先对于每个测试文件将服务器启动结束后再关闭虽然相对比较耗费时间,但是理论上还是合理的,毕竟要进行数据隔离的话确实是没错,但是在afterAll

    3.4K30

    Sentry 开发者贡献指南 - 测试技巧

    建议使用 devservices 来确保所需要的服务正在运行。如果您还使用本地环境进行本地测试,您将需要使用 --project 标志将本地测试卷与测试套件卷分开: # 关闭本地测试服务。...这些测试帮助我们确保我们的 customers、integrations 和前端应用程序的 API 继续以预期的方式工作。...运行 pytest 您可以根据更改的范围使用 pytest 运行单个目录、单个文件或单个测试: # 对整个目录运行测试 pytest tests/sentry/api/endpoints/ # 对目录中匹配模式的所有文件运行测试...在测试中检查 SQL 查询 将以下内容添加到项目根目录中的 conftest.py 中: import itertools from django.conf import settings from django.db...您可以使用 getDynamicText 帮助程序为依赖于当前时间或变化 过于频繁而无法包含在可视快照中的组件/数据提供固定内容。

    1.7K50

    Jest中Mock网络请求

    npm run test:demo3: 使用Jest中的库完成demo2的实现。...处理,通过npm run test:demo1即可尝试运行,实际上是将包装axios的wrap-request库进行了一个mock操作,在Jest启动时会进行编译,在这里将这个库mock掉后,所有在之后引入这个库的文件都是会获得...,所幸Jest提供了一种可以直接实现被Mock的函数库的方式,当然实际上Jest还提供了mockImplementation的方式,这个是在demo3中使用的方式,在这里我们重写了被mock的函数库,在实现的时候也可以使用...在这里就使用到了jest-axios-mock-server库,首先我们需要指定三个文件,分别对应每个单元测试文件启动前执行,Jest测试启动前执行,与Jest测试完成后执行的三个生命周期进行的操作,分别是...与afterAll生命周期启动与关闭服务器,首先这个方案我也尝试过,首先对于每个测试文件将服务器启动结束后再关闭虽然相对比较耗费时间,但是理论上还是合理的,毕竟要进行数据隔离的话确实是没错,但是在afterAll

    2.6K30

    那些年错过的React组件单元测试(上)

    文章内容力求深入浅出,浅显易懂~ “介于内容全部收在一篇会太长,计划分为两篇,本篇是第一篇,主要介绍如何快速上手jest以及在实战中常用的功能及api ?...我们发现有以下几种模式: f: 只会测试之前没有通过的测试用例 o: 只会测试关联的并且改变的文件(需要使用 git)(jest --watch 可以直接进入该模式) p: 测试文件名包含输入的名称的测试用例...t: 测试用例的名称包含输入的名称的测试用例 a: 运行全部测试用例 在测试过程中,你可以切换适合的模式。...({ error: 'id为2的用户不存在', }); }); async/await 我们知道async/await其实是Promise的语法糖,可以更优雅地写异步代码,jest中也支持这种语法...我们在测试中也主要是用到了mock函数提供的以下三种特性: 捕获函数调用情况 设置函数返回值 改变函数的内部实现 下面,我将分别介绍这三种方法以及他们在实际测试中的应用。

    5K20

    小程序 自动化测试

    Jest 中的默认环境是 Node.js 环境, 如正在构建一个网络应用程序,你可以使用类似浏览器的环境来jsdom代替 testMatch: '' //测试文件存放地址 jest 用于检测测试文件的...,对左侧模拟器上的页面进行操作,系统会自动记录整个过程,在操作过程中,可以对数据,页面进行快照、截图等操作在用例添加完成后,可以导出为jest代码,在单独的文件中维护生成报表结果在项目中也可以在非项目中...,运行jest,会对jest.config.js 中的配置进行解析1 publicPath 存放目录2 pageTitle 报表标题3 filename 文件名称const moment = require...":true } ] ],}---使用方式 connect 方式在开发用例的使用推荐使用,注意点,需要关闭开发工具后运行cli auto --project D:\work\your_project_path...launch 方式使用 必须要关闭小程序开发工具,不然端口会被占用,如果在开发测试用例,不建议使用该方式在终端中(非小程序开发工具),启动命令,不然会出现Error: Failed to launch

    2.7K20

    可能是目前最详细从零开始配置 TypeScript 项目的教程

    如果你不清楚是否要继续阅读其中的一些配置信息,则可以通过工程问题来决定是否要继续阅读相关的内容。...[78]: 用于解决 ESLint 和 Prettier 配合使用时容易产生的格式规则冲突问题,其作用就是关闭 ESLint 中配置的一些格式规则,除此之外还包括关闭 @typescript-eslint...(例如本项目中配置的 plugin:jest/recommended 可能存在规则冲突),那么可以通过配置 .eslintrc.js 的形式自己手动关闭相应冲突的格式规则。...lint-staged 可以在用户提交代码之前(生成 Git Commit Message 信息之前)使用 ESLint 检查 Git 暂存区中的代码信息(git add 之后的修改代码),一旦存在 ?...paths 信息,同时注意将测试代码包含到 TypeScript 的编译目录中。

    5.1K22

    从项目演进看前端工程化发展

    当使用者在项目初始化完毕并愉快地进行库开发后,如果需要更新某些内容,或者替换初始化部分内容,Jslib 提供:jslib update 的命令行能力,它依赖文件拷贝,主要实现了: 模板文件合并 json...我的意图显然不是教大家如何使用 HoC,render prop 甚至 hooks 模式来实现组件复用,编写公共轮子,我更想介绍这些轮子项目组织管理以及构建设计的一个更好的思路。...在项目根目录 lerna.json 中,有这样的内容: { "version": "independent", // ... } 我们看到,version 选用的 independent 模式,...比如,我习惯使用 Jest 进行单元测试,那么 Jest 相关的 npm 脚本可以进行抽象,在新的项目 package.json 中引入: "scripts": { "test": "lucas-script...它会在当前的测试流程中,赋值相应的环境变量,判断 Jest 的运行是否需要进行监听(watch 参数),同时获取 Jest 配置,并最终运行 Jest。

    1.1K20

    JavaScript 测试系列实战(三):使用 Mock 模拟模块并处理组件交互

    在这篇教程中,我们将学习如何测试更复杂的组件,包括用 Mock 去编写涉及外部 API 的测试,以及通过 Enzyme 来轻松模拟组件交互 初次尝试 Jest Mock 我们的应用程序通常需要从外部的...首先通过 jest.spyOn,我们便可以监听一个函数的使用情况,然后使用配套的 toBeCalled Matcher 来判断该函数是否被调用。整体代码十分简洁,同时也保持了很好的可读性。...更新后的快照文件反映了我们刚刚做的变化: // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`ToDoList component when provided...React 组件的交互 在上面迭代的 TodoList 中,我们使用了 axios.post。...我们将测试状态是否随着我们的新任务而更新,其中比较有趣的是请求是异步的,我们继续修改代码如下: import React from 'react'; import { shallow } from 'enzyme

    4.8K20

    QQ音乐商业化Web团队前端工程化实践总结

    DOM 封装,可以实现局部作用域;当设置{mode: closed}后,只有其宿主才可定义其表现,外部的api是无法获取到Shadow DOM中的任何内容,宿主的内容会被Shadow DOM掩盖。...定义了template的标签,类似我们经常用的,它不会被解析为dom树的一部分,template的内容可以被塞入到Shadow DOM中并且反复使用;template...[slot的示例] HTML Imports: 打包机制,将HTML代码以及Web Componnet导入到页面中,这个规范目前已经不怎么推动了,在参考了ES6 module的机制后,FireFox团队已经不打算继续支持...PropTypes React在15.5的版本后将类型检查React.PropTypes移除后使用prop-types库代替,它是一种运行时的类型检测机制,包含一整套验证器,可用于确保组件属性接收的数据是正确的类型...版本发布 在这种模式下,首先基于master分支创建某个版本的stable分支,然后将代码改动合并进master分支,当需要发版本的时候,将master分支使用cherry-pick合并到stable分支中去

    4.3K112

    试试使用 Vitest 进行组件测试,确实很香。

    将Jest等框架与Vite一起使用,导致Vite和Jest之间有很多重复的配置,而 Vitest 解决了这一问题,它消除了为我们的应用程序编写单元测试所需的额外配置。...它还可以使用与 Vite 相同的插件API进行扩展,并与Jest的API兼容,以方便从Jest迁移,而不需要做很多重构工作。 因此,Vitest 的速度也非常快。...从结果中需要注意的一点是,由于Vitest的智能和即时观察模式,这个命令只需要运行一次,并在我们对测试文件进行更新和修改时被重新运行。...Vitest 还可以很容易地将现有的测试从 Jest 迁移到Vitest,而不需要进行额外的配置。...代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。

    2.3K20

    Migrate From Vue-cli to Vite

    如果你使用的是Vue2,我们还要补充vite-plugin-vue2, 这个会用在vite.config.js中: image.png npm i vite-plugin-vue2 -D 另外,如果你使用的是...其他脚本,比如build, jest, lint, 之后也会讲到。 index.html 继续,把 public/index.html 移至项目的根目录。...首先,可以更新 test 脚本: image.png 如果你的babel.config.js文件中包含类似内容: presets: ['@vue/cli-plugin-babel/preset'],...所以,我有两个.env文件: .env.preprod .env.prod 当使用 rollup 构建时,vite 将根据调用构建脚本时使用的模式,用其值替换我们的环境变量。...首次页面请求 当vite启动后, 第一次请求一个包含很多组件的复杂页面,让我们看一下 Chrome DevTools 中的network标签: vite:〜1430 JS文件请求, 在〜11秒内完成 vue-cli

    5.2K30

    Node.js 中的 require 是如何工作的?

    按照文件的形式加载(Y + X),根据 extensions 依次尝试加载文件 [X, X.js, X.json, X.node] 如果存在就返回该文件,不再继续执行。b....按照文件夹的形式加载(Y + X),如果存在就返回该文件,不再继续执行,若找不到将抛出错误 a. 尝试解析路径下 package.json main 字段 b....,模块在首次加载后,会以模块绝对路径为 key 缓存在 Module....使用方式是在需要被 mock 的文件模块同级目录下的 __mock__ 文件夹添加同名文件,执行测试代码时运行 jest.mock(modulePath),jest 会自动加载 mock 版本的 module...使用 require.cache 由于缓存机制的存在,提前写入目标缓存,再次 require 将得到我们期望的结果。 // 提前 require mock apis 文件,产生缓存。

    3.4K10

    前端工程化实践总结 |

    DOM 封装,可以实现局部作用域;当设置{mode: closed}后,只有其宿主才可定义其表现,外部的api是无法获取到Shadow DOM中的任何内容,宿主的内容会被Shadow DOM掩盖。...HTML template-2 由于Shadow DOM中宿主元素的内容会被影子节点掩盖,如果想将宿主中某些内容显示出来的话就需要借助slot,它是定义在宿主和template中的一个插槽,用来“占位...slot的示例 HTML Imports: 打包机制,将HTML代码以及Web Componnet导入到页面中,这个规范目前已经不怎么推动了,在参考了ES6 module的机制后,FireFox团队已经不打算继续支持...PropTypes React在15.5的版本后将类型检查React.PropTypes移除后使用prop-types库代替,它是一种运行时的类型检测机制,包含一整套验证器,可用于确保组件属性接收的数据是正确的类型...版本发布 在这种模式下,首先基于master分支创建某个版本的stable分支,然后将代码改动合并进master分支,当需要发版本的时候,将master分支使用cherry-pick合并到stable分支中去

    4.5K41
    领券