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

Sentry 开发者贡献指南 - 前端(ReactJS生态)

React 定义 React 组件 新组件在需要访问 this 使用 class 语法,以及类字段+箭头函数方法定义。...Reflux 实现了 Flux 概述的单向数据模式。 Store 注册在 app/stores 下,用于存储应用程序使用的各种数据。 Action 需要在 app/actions 下注册。...以前我们使用lodash-webpack-plugin 和 babel-plugin-lodash 的组合, 但是在尝试使用新的 lodash 实用程序(例如这个 PR)很容易忽略这些插件和配置。...当您需要创建新的共享状态源,请考虑使用 context 和 useContext 而不是 Reflux。此外,可以利用虫洞状态管理模式来公开共享状态和突变函数。...重写需要时间,使我们面临风险,并且为最终用户提供的价值很小。 如果您需要重新设计一个组件以使用库中的 hooks,那么还可以考虑从一个类转换为一个函数组件。

6.9K30

如何发布一个 TypeScript 编写的 npm 包

前言在这篇文章中,我们将使用TypeScript和Jest从头开始构建和发布一个NPM包。我们将初始化一个项目,设置TypeScript,用Jest编写测试,并将其发布到NPM。...它允许从嵌套对象中根据路径找出值,类似于lodash中的get函数。...我们将使用jest,因为它简单且好用。npm i -D jest @types/jest ts-jestts-jest包是Jest理解TypeScript所需要的。...另一个选择是使用babel,这将需要更多的配置和额外的模块。我们就保持简洁,采用ts-jest使用如下命令初始化jest配置文件:....我们的模块导出一个单一函数,digx。它接收任意对象,字符串参数path,以及可选参数shouldThrow,该参数使得提供的路径在源对象的嵌套结构中不被允许抛出一个异常。

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

秒懂Yarn:从安装到配置的全流程详解

个人网站:【 洛秋小站】秒懂Yarn:从安装到配置的全流程详解Yarn是由Facebook推出的一个新的JavaScript包管理工具,解决了许多开发人员在使用npm遇到的痛点。...Yarn会缓存下载过的每一个包,下一次安装直接从缓存中读取,大大提升了安装速度。3....例如:yarn add react如果需要将依赖添加到devDependencies字段,可以使用-D或--dev参数:yarn add jest -D2....例如:yarn upgrade react如果需要升级所有的依赖包,可以使用:yarn upgrade4. 锁定依赖版本Yarn会生成一个yarn.lock文件,用于锁定依赖包的版本。...每次安装依赖,Yarn会参考该文件,确保安装的依赖版本一致。七、测试接口与详细解释在项目开发过程中,我们经常需要测试API接口。通过Yarn,我们可以安装和使用一些测试工具来完成这一任务。

10200

如何发布一个 TypeScript 编写的 npm 包

前言 在这篇文章中,我们将使用TypeScript和Jest从头开始构建和发布一个NPM包。 我们将初始化一个项目,设置TypeScript,用Jest编写测试,并将其发布到NPM。...它允许从嵌套对象中根据路径找出值,类似于lodash中的get函数。...我们将使用jest,因为它简单且好用。 npm i -D jest @types/jest ts-jest ts-jest包是Jest理解TypeScript所需要的。...另一个选择是使用babel,这将需要更多的配置和额外的模块。我们就保持简洁,采用ts-jest使用如下命令初始化jest配置文件: ....我们的模块导出一个单一函数,digx。它接收任意对象,字符串参数path,以及可选参数shouldThrow,该参数使得提供的路径在源对象的嵌套结构中不被允许抛出一个异常。

1.8K20

Jest基本使用方法以及mock技巧介绍

句法来验证不同的内容; 测试异步代码:支持承诺(promise)数据类型和异步等待async / await功能; 模拟函数:可以修改或监查某个函数的行为; 手动模拟:测试代码可以忽略模块的依存关系;...2  Jest的mock技巧介绍 2.1  基本的mock 2.1.1  Mock一个函数 方法的mock 非常简单,使用jest.fn 就可以非常简单的mock一个函数。...如下面的例子:代码里面有一个函数叫forEach。 ? 此函数可以简单使用下面方法mock,并且jest提供一些方法可以确保查看mock函数被调用的情况: ?...2.2.3.2  对于node_modules下面的模块 如果我们需要mock的模块是一个Node的模块(如lodash ),那么 __mocks__应该是挨着node_modules目录(除非你手动配置的...2.3.3  使用带模块工厂参数的mock。 形式如下jest.mock(path, moduleFactory),其中模板工厂参数指的是一个返回模块的函数 ? 2.3.4.

8.3K50

对 React 组件进行单元测试

前端开发的一个特点是更多的会涉及用户界面,当开发规模达到一定程度,几乎注定了其复杂度会成倍的增长。...React代码,并且还使用了ES6语法,所以项目下需要存在一个.babelrc文件: { "presets": ["env", "react"] } 以上是基本的配置,而实际由于webpack可以编译...对于一些组件和共有函数等,完善的测试也是一种最好的使用说明书。...,诸如onscroll或oninput这类高频触发动作,需要函数防抖或节流,比如常用的 lodash 的 debounce 等。...所谓的异步操作,在不考虑和 ajax 整合的集成测试的情况下,一般都是指此类操作,只用 setTimeout 是不行的,需要搭配 done 函数使用: //组件中const Comp = (props)

4.2K40

别再用JSON配置文件了

然后我把所有的配置文件放在一个单独的包中,基于我们使用的工具(比如Babel)提供的扩展机制,我们可以共享配置。...就像这样,我们的包里需要另外一个Babel插件,像修改普通的对象一样修改它就好了。 const base = require(".....如果使用JSON配置,哪怕有一丁点儿不同我们都要新建一个新的配置文件,如果换成JavaScript配置,我们可以通过一些编程技巧动态地返回需要的内容。...[...base.plugins, "lodash"] : base.plugins, }; 共享配置 进入前端世界后,一个比较爽的点是什么代码都可以通过npm发布 ,我们只需要创建一个恰当的...有没有这个必要大家可以根据自己的场景判断,如果有需要,我们可以使用任何我们熟悉的测试框架来测试,比如Jest

59630

第一次发布自己的npm包

keyword:这个是一个重点,这个关系到有多少人会搜到你的npm包。尽量使用贴切的关键字作为这个包的索引。...这个需要找下原因。 然后写个readme.md文件就可以执行npm publish命令啦。 遇到的问题 由于我采用的es6的语法,直接发布没问题,但是应用到项目中,项目打包发布就会出现语法错误。...image.png 所以需要引入babel来将es6转化一下,一开始只用的babel-preset-es2015这个的转化还是不行,仍然是报错,最终使用的转化强度更大的babel-preset-stage...image.png 遗留问题 发布,是发布的lib下的转化文件,那么需要添加一个package.json文件才能发布的,每次手动添加总是麻烦,准备写一个命令才搞定。期待中......为什么项目中需要使用 const lodash = require("lodash"); const jsUtils = {}; module.exports = jsUtils; 这样的方式来组织文件呢

57420

2016 JavaScript 技术栈展望

我对一个测试框架的要求有如下几条: 可以在浏览器运行,便于调试 执行速度快 便于处理异步测试 便于在命令行中使用 可以兼容任意断言和数据模拟的第三方库 第一条标准就排除了 Ava 和 Jest。...Lodash JavaScript 并没有一个类似 Java 或 .NET 的核心工具库,所以开发者大都会从外部引用一个外部工具库。 目前来说,Lodash 是此类工具中的佼佼者。...使用 Lodash 无需引用全部资源,开发者可以按需使用其中的函数。在 4.x 版本中,Lodash 为偏爱函数式编程的开发者提供了一个函数式开发”模式。...如果你熟悉函数式编程,你可以了解一下 Ramda。如果你决定使用这个库,可能需要引用一些 Lodash 函数。 fetch 许多基于 React 的应用程序都不再使用 jQuery 了。...如果你的应用程序只有两三屏,那么就无需使用路由系统;如果你正在创建一个单页应用,那么甚至不需要 Redux,只需要 React 自己的 state 属性即可;如果你正在创建一个简单的 CRUD 程序,那么你就不需要使用

2.1K40

异步函数中的异常处理及测试方法

有基本的了解 安装 Node.Js 和 Jest 如何从 Javascript 的常规函数抛出错误 使用异常而不是返回码(清洁代码)。...这是对它的测试(使用Jest): ? 也可以从 ES6 的类中抛出错误。在 Javascript 中编写类,我总会在构造函数中输入意外值。下面是一个例子: ? 以下是该类的测试: ?...测试异常 所以你应该知道什么是 Javascript 的异步函数,对吗?先看一段代码: ? 假设你要添加异步方法来获取有关该人的数据。这种方法需要一个网址。...总结 最后总结一下: 从异步函数抛出的错误不会是“普通的异常”。 异步函数和异步方法总是返回一个Promise,无论是已解决还是被拒绝。 要拦截异步函数中的异常,必须使用catch()。...以下是在Jest中测试异常的规则: 使用 assert.throws 来测试普通函数和方法中的异常 使用 expect + rejects 来测试异步函数和异步方法中的异常 如果你对如何使用 Jest

2.9K30

javascript学习之函数组合

满足结合律既可以把g和h组合 还可以把f和g组合,结果都是一样的 数据的管道 如果一个函数经过多个函数处理才能得到最终值,这个时候可以把中间过程的函数合并成一个函数 函数就像是数据的通道,函数组合就是把这些管道链接起来...,让数据传过多个管道行程最终结果 函数组合默认从右到左执行 下面就是数据处理的过程,给fn参数a,返回结果b可以想象a 数据通过一个管道得到了b数据 a=====>fn=========>b 可以把fn...,一个管道翻转数据,第二个管道获取元素的第一个元素,这两个函数可以单独使用,也可以组合起来成为更强大的函数。...上面的例子只是一个很简单的操作,所以看起来好像并不便利,当项目中很多方法组合的时候就能展显示出了 lodash中的函数组合 flow 是从左右到执行 flowRight是从右到左运行,使用的更多一些 const...中map方法存在的问题 lodashlodash/fp 里面的map方法参数有一定的差距,参数顺序一个是数据在前,一个数据在后、回调函数的参数也不一致。

73330

2020 年你应该知道的 React 库

但是,有时候不仅需要提供复杂的异步请求,还需要它们具有更强大的功能,而且只是一个轻量级的库。我推荐的这些库之一称为 axios。当您的应用程序增大,可以使用它来代替本地获取 API。...当您在某个时间点再次运行测试,将创建另一个快照,用作前一个快照的差异。如果 diff 不完全相同,则 Jest 将报错,您要么必须接受快照,要么必须更改组件的实现。...您甚至可能希望在将这些实用函数链接起来时更加灵活,甚至可以将它们动态地组合在一起。这时,您将引入一个实用程序库: Lodash 或 Ramda。...对于每一个 JavaScript 开发者来说,Lodash一个更加实际的库,而 Ramda 在函数式编程中有一个强大的核心。...React 国际化 当涉及到 React 应用程序的国际化 ,您不仅需要考虑翻译,还需要考虑多元化、日期和货币的格式化,以及其他一些事项。

14.4K40

Github 4 万 Star!最全面的 Node.js 资源汇总推荐

/函数,而不需要额外开销 Bacon.js - 函数式的响应式编程 RxJS - 用于转换、组合和查询各种类型数据的函数式响应式库 Lazy.js - 惰性求值的类似于 lodash/Underscore..... njsTrace - 检测并跟踪代码,查看所有函数调用、参数、返回值以及在每个函数中花费的时间 vstream - 检查数据并且通过管道展示 stackman - 增强抛出异常的错误栈追踪 locus...- 一个基于 Promise 的任务执行工具 —— 当需要执行的工作太多 npm run 不足以完成任务 FuseBox - 首选支持 TypeScript 的结合了 webpack,JSPM 和 SystemJS...pad-stream - 填充中的每一行 multistream - 将多个合并为一个 stream-combiner2 - 从管道输出 readable-stream - Streams2...路径方式获取一个套嵌对象的属性 onetime - 执行一次性函数 mem - 记忆函数——一种优化技术,通过缓存相同输入函数的执行结果来加速连续函数调用 import-fresh - 调用模块绕开缓存

3.4K31

Bun:不仅是新的JavaScript运行时,并且重塑了JavaScript工具链

为了实现这个目标,可能需要放弃一些在使用 Bun 之后变得不再必要的工具:Node.js:Bun 的一个可以直接替代的工具,因此不再需要以下工具:nodenpx:Bun 的 bunx 命令比 npx 快...Bun是一个支持Jest的测试运行器,具有快照测试、模拟和代码覆盖率等功能,因此不再需要以下测试相关的工具对比 Deno在讨论 JavaScript 运行时的演变,很难忽略 Deno。...bun index.ts在运行 TypeScript 文件,速度上的差异会被放大,因为 Node.js 在运行前需要一个转译步骤。...传统上,Node.js 开发人员一直依赖 Jest 或者 Vitest 来进行单元测试,而 Bun 则引入了一个内置测试运行器,保证了速度、兼容性和一系列满足现代开发工作的功能。...总而言之,如果想在真实的项目中使用,Bun 更适合作为 npm 和 jest 的平替。作为构建工具来说,生态还不是太成熟,迁移成本可能比较高。服务端渲染的话,需要先调研一下运行的环境,是否能完美支持。

2.3K52

万字详文:彻底搞懂 Jest 单元测试框架

test 它需要两个参数:一个用于描述测试块的字符串,以及一个用于包装实际测试的回调函数。expect 包装目标函数,并结合匹配器 toBe 用于检查函数计算结果是否符合预期。...expect 是一个断言,该语句使用输入 1 和 2 调用被测函数中的 sum 方法,并期望输出 3。 toBe 是一个匹配器,用于检查期望值,如果不符合预期结果则应该抛出异常。...fn) => { dispatch({ type: "ADD_TEST", fn, name }); }; 我们需要在全局创建一个 state 保存测试的回调函数,测试的回调函数使用一个数组存起来...test、expect 和 jest 这些函数,每个测试文件可以直接使用,所以我们这里需要创造一个注入这些方法的运行环境。...代码块里面的函数等信息存到 state 里面,dispatchSync 里面使用 name 配合 eventHandler 方法来修改 state,这个思路非常像 redux 里面的数据

7.6K20

医疗数字阅片-医学影像-Lodash一个一致性、模块化、高性能的 JavaScript 实用工具库。_.throttle(func, , [option

这么高的执行频率,你的滚动回调函数压力大吗? 早在2011年,Twitter 网站抛出一个问题:向下滚动 Twitter 信息的时候,变得很慢,很迟钝。...此处也不需要 leading 标记,我们想等最后一个字符输完。 相似的使用场景还有,直到用户输完,才验证输入的正确性,显示错误信息。...我是建议直接使用 underscore 或 Lodash 。如果仅需要 _.debounce 和 _.throttle 方法,可以使用 Lodash 的自定义构建工具,生成一个 2KB 的压缩库。...debounced_version.cancel(); Throttle(节流阀) 使用 _.throttle 的时候,只允许一个函数在 X 毫秒内执行一次。...requestAnimationFrame:可替代 throttle ,函数需要重新计算和渲染屏幕上的元素,想保证动画或变化的平滑性,可以用它。注意:IE9 不支持。

2.4K20

不影响开发体验,如何将单体 Node.js 变成 Monorepo

持续集成工作的配置:.github/workflows/ci.yml 需要做多处调整,例如,确保其中的步骤会针对每个包运行,多个包的指标(如测试覆盖率)会合并成一个。...因此,我们有三方面的建议,特别是当需要就迁移到 Monorepo 说服整个团队。 提前计划(短时间的)代码冻结:为了避免迁移时发生冲突,定义一个日期和时间,到时所有分支都必须合并。...实现这一目标的一种低成本方法是在 servers/monolith/ 中重新引入 common-utils 目录,并使用一个从新生成的包 @myorg/common-utils 导出函数的文件: export...借助 Turborepo,在定义好管道后(和构建类似),只需一条命令(yarn turbo test:unit )就可以运行所有包的单元测试。...、Prettier 和 Jest 配置; 安装 Turborepo 优化开发和构建工作

1.8K20
领券