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

JavaScript模块开发5种改进方式

另外两个最有希望提案旨在简化开发人员使用模块文件结构,从将它们 Web Workers 相结合开始。...“捆绑器可以使用浏览器实现模块语义,将代码输出到单个文件:它们不必重新实现 ESM 工作方式,”Ribaudo 建议道。 Ehrenberg 同意。...使用导入属性指定您期望一个 JSON 模块,如果事实证明它不是其他东西,浏览器将拒绝加载它。 “导入属性将成为捆绑器巨大福音,以便了解如何以有效方式将您程序捆绑在一起。”...“我们正在标准构建这些原语,以便我们可以在本机 ES 模块系统对这些功能提供一流支持。”...我们正在标准构建这些原语,以便我们可以在本机 ES 模块系统对这些功能提供一流支持,因为现在没有对这种功能提供一流本机支持,因此存在实现复杂性。”

12210

2020 年你应该知道 React 库

当我从 Angular 切换到 React,绝对经历了它作为 React 优势。 只有通过 React,您才能使用函数组件和 props 构建组件驱动用户界面。...尽管应用程序某些部分仍然可以共享样式,但其他部分不必访问它。在 React ,CSS Modules 通常将 CSS 文件 React 组件文件共存。 import styles from '....您还可以使用 S3 静态站点 Cloudfront 一起托管。...您甚至可能希望在将这些实用函数链接起来时更加灵活,甚至可以将它们动态地组合在一起。这时,您将引入一个实用程序库: Lodash 或 Ramda。...以前用过 Sketch,但最近转到了 Figma。尽管我两者都喜欢,但我现在并不后悔使用 Figma。另一个流行工具是 Framer。

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

JavaScript测试教程-part 2:引入 Enzyme 并测试 React 组件

这样可以使你程序将更加可靠,并且更加容易避免回归。我们在这里用了 Jest,不过 Enzyme 也可以 Mocha 和 Chai 之类一起使用。...它将包含 adapter 用法,后者是一个附加库,允许你将 Enzyme 一组特定 React 版本一起使用。...这里要注意一个非常重要点:即使我们用了 Enzyme,但测试运行程序仍然是 Jest。由于我们用是 expect 函数,因此可以使用各种可供调用匹配器函数已经在课程第一部分中提到了它们。...在第一个测试,我们使用了 toContainReact 函数,这是一个自定义匹配器函数。它是 enzyme-matchers 库一部分。...要将其 Jest 一起使用,请安装 jest-enzyme 包。 1npm install jest-enzyme 最后要做是将其导入 setupTests 文件

1.4K50

Jest 进行 JavaScript 测试

最常见问题是“怎么知道要测试些什么?”。如果你正在编写 Web 应用,那么一个好起点就是测试应用每个页面和每个用户交互。但 Web 应用也由单元代码组成,如函数和模块,也需要进行测试。...根据规范,测试函数应该省略其 url 属性给定搜索项不匹配对象。..., "link"); 在 Jest 测试,你应该将函数调用包含在 expect ,它与匹配器(用于检查输出Jest函数一起进行实际测试。...修复测试 真正缺少是 filterByTerm 实现。为方便起见,我们将在测试所在同一文件创建该函数。在一个实际项目中,你需要在另一个文件定义该函数并从测试文件中导入它。...尝试通过测试添加新语句来达到100%代码覆盖率。

2.7K30

JestMock网络请求

描述 文中提到示例全部在 jest-axios-mock-server仓库 ,直接使用包管理器安装就可以启动示例,例如通过yarn安装: $ yarn install 在package.json中指定了一些命令...使用了JSDOM模拟浏览器环境,在jest.config.js配置setupFiles属性配置了启动文件test/config/setup.js,在此处初始化了JSDOM。...,所幸Jest提供了一种可以直接实现被Mock函数方式,当然实际上Jest还提供了mockImplementation方式,这个是在demo3使用方式,在这里我们重写了被mock函数库,在实现时候也可以使用...在这里就使用到了jest-axios-mock-server库,首先我们需要指定三个文件,分别对应每个单元测试文件启动前执行,Jest测试启动前执行,Jest测试完成后执行三个生命周期进行操作,分别是...beforeAllafterAll生命周期启动关闭服务器,首先这个方案尝试过,首先对于每个测试文件将服务器启动结束后再关闭虽然相对比较耗费时间,但是理论上还是合理,毕竟要进行数据隔离的话确实是没错

3.3K30

JestMock网络请求

描述# 文中提到示例全部在 jest-axios-mock-server仓库 ,直接使用包管理器安装就可以启动示例,例如通过yarn安装: Copy$ yarn install 在package.json...使用了JSDOM模拟浏览器环境,在jest.config.js配置setupFiles属性配置了启动文件test/config/setup.js,在此处初始化了JSDOM。...,所幸Jest提供了一种可以直接实现被Mock函数方式,当然实际上Jest还提供了mockImplementation方式,这个是在demo3使用方式,在这里我们重写了被mock函数库,在实现时候也可以使用...在这里就使用到了jest-axios-mock-server库,首先我们需要指定三个文件,分别对应每个单元测试文件启动前执行,Jest测试启动前执行,Jest测试完成后执行三个生命周期进行操作,分别是...beforeAllafterAll生命周期启动关闭服务器,首先这个方案尝试过,首先对于每个测试文件将服务器启动结束后再关闭虽然相对比较耗费时间,但是理论上还是合理,毕竟要进行数据隔离的话确实是没错

2.6K30

JavaScript 测试教程 part 1:用 Jest 进行单元测试

首先,将介绍单元测试基础知识,即测试应用程序每个部分并检查它们是否适合使用。为此我们将使用 Facebook 开发测试框架 Jest。它已经准备就绪,并具有进行测试所需功能。...package.json 1"scripts": { 2 "test": "jest" 3} 为了简单起见,在这里将 Jest 简单纯 Node.js 模块一起使用(不包括 webpack)。...默认情况,如果它们位于 tests 目录或以 test 或 .spec 为后缀,将执行 .js 和 .jsx 文件。...你可以调用一组 matcher 函数(例子中使用 toBe)以某种方式测试该值。有关完整信息,请访问 Jest 文档。 分组测试 每个文件通常会有一个以上测试。...使用 Jest,你可以使用 describe 函数对它们进行分组。它创建了一个可以合并多个测试块。

2.8K20

Vue 应用单元测试策略实践 02 - 单元测试基础

现在就让我们一起来学习如何编写最基础单元测试。 如果你已经有了使用 Jest 编写单元测试经验,可以选择直接跳到第二段。...在同一个文件创建一个 math.test.js 文件,在这里我们将使用 Jest 来测试 math.js 定义函数: const { sum } = require('....想象一正在测试一个 Order Class price() 方法,而 price() 方法需要在 Product 和 Customer Class 调用一些函数。...}; }); }); 我们可以看到 jest.mock() 方法第二个参数是一个函数,那么我们就可以完全接管整个 ....比如说上文中 video 模块 play() 方法已经被 spy 过,那么之后 play() 方法只要被调用过,我们就能判断其是否执行,甚至执行次数。 如何 Mock 全局方法?

2.2K20

前端测试体系建设最佳实践总结

单元测试:是指对软件最小可测试单元进行检查和验证,通常指的是独立测试单个函数。 UI 测试:是对图形交互界面的测试。 集成测试:就是测试应用不同模块如何集成,如何一起工作,这和它名字一致。...Karma 能在真实浏览器测试,强大适配器,可配置其他单测框架,一般会配合 Mocha 或 Jasmine 等一起使用。 每个框架都有自己优缺点,没有最好框架,只有最适合框架。...单元测试和 UI 测试文件夹统一命名为 tests,测试文件以 .test.js 为后缀 将 tests 文件夹与它们正在测试代码放在同级目录下,以便相对路径导入时路径更短 e2e 测试文件夹命名为...,之后调用函数,验证它输出期望是否一样。...下面一起看一如何处理这些情况。 LocalStorage 因为 Jest 环境是基于 jsdom, 所以我们需要去模拟 localstorage 行为。借鉴 Vue2.0 里数据侦测方法。

5.3K30

【译】发布你自己npm包

通常,我们会在代码引入实用包,比如typy,sugar,并轻松使用它们。 那么,你有没有想过编写自己实用程序/库,并将其发布到NPM上面,以便在世界任何地方可以重复使用它?...大多数开发者只是从一个项目复制代码到另一个项目中使用它,因为它只是几行代码。但更好方法是提取代码并将其放在一个公共位置,以便你可以从任何项目中访问它。...默认情况,这入口点将是index.js,但是你可以根据你自己情况来更改入口点(文件)。 对于Babel或基于bundle库,入口点通常位于构建目录。...源码 如果你正在编写一个小型库,则可以将所有代码放入index.js。但是,更常见是,我们将抽象代码并将其放入单独文件。所以,理想方法是将所有源代码保存在src。...样板文件 有一些自己npm软件包,并在线研究了创建NPM软件包所有最佳实践,并专门为此创建了样板文件。它具有预先设置所有功能,以便你可以在几秒钟内开始使用

78610

发布你自己npm包

通常,我们会在代码引入实用包,比如typy,sugar,并轻松使用它们。 那么,你有没有想过编写自己实用程序/库,并将其发布到NPM上面,以便在世界任何地方可以重复使用它?...大多数开发者只是从一个项目复制代码到另一个项目中使用它,因为它只是几行代码。但更好方法是提取代码并将其放在一个公共位置,以便你可以从任何项目中访问它。...默认情况,这入口点将是index.js,但是你可以根据你自己情况来更改入口点(文件)。 对于Babel或基于bundle库,入口点通常位于构建目录。...源码 如果你正在编写一个小型库,则可以将所有代码放入index.js。但是,更常见是,我们将抽象代码并将其放入单独文件。所以,理想方法是将所有源代码保存在src。...样板文件 有一些自己npm软件包,并在线研究了创建NPM软件包所有最佳实践,并专门为此创建了样板文件。它具有预先设置所有功能,以便你可以在几秒钟内开始使用

30230

将Pytorch模型移植到C++详细教程(附代码演练)

说明 在本文中,我们将看到如何将Pytorch模型移植到C++。Pytorch通常用于研究和制作新模型以及系统原型。该框架很灵活,因此易于使用。...主要问题是我们如何将Pytorch模型移植到更适合格式C++以便在生产中使用。 我们将研究不同管道,如何将PyTrac模型移植到C++,并使用更合适格式应用到生产中。...因此,可以使用Python轻松地在PyTorch训练模型,然后通过torchscript将模型导出到无法使用Python生产环境。它基本上提供了一个工具来捕获模型定义。...ONNX定义了一组通用操作符、机器学习和深度学习模型构建块以及一种通用文件格式,使AI开发人员能够将模型各种框架、工具、运行时和编译器一起使用。...可以使用以下代码将上述DummyCell模型导出到onnx: torch.onnx.export(dummy_cell, x, "dummy_model.onnx", export_params=True

1.1K40

React 学习路线图 2018版

文中有多处学习资料链接,大家可以通过访问原文来获取 这个 React 学习路线思维图来源自 Adam Gołąb react-developer-roadmap 。...·使用 grid 和 flexbox 为页面布局 iii.JS 基础 ·熟悉语法 ·学习 DOM 基础操作 ·学习 JS 经典机制...) iii.别害怕使用 Google Google 强力搜索 iv.熟悉终端,配置 shell (bash、zsh、fish) v.读一些数据结构和算法书 vi.读一些设计模式书...还有,我会持续进行补充完善,所以你可能会想要给我个 star 以便于以后浏览。 参与贡献 学习路线图是使用 Draw.io 画文件就放在 /src 目录下。...想要修改思维图,先打开 draw.io ,点击 Open Existing Diagram 然后选择 xml 文件

2.4K41

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

它在测试过程中使用 Vite 开发服务器来转换你文件,并监听你应用程序相同配置(通过vite.config.js),从而消除了使用Jest等测试替代品所涉及重复工作。...将Jest等框架Vite一起使用,导致Vite和Jest之间有很多重复配置,而 Vitest 解决了这一问题,它消除了为我们应用程序编写单元测试所需额外配置。...它还可以使用 Vite 相同插件API进行扩展,并与JestAPI兼容,以方便从Jest迁移,而不需要做很多重构工作。 因此,Vitest 速度也非常快。...我们使用了一个 async 函数,因为我们将触发一个事件,它返回一个 Promise,我们需要等待这个 Promise 解决,以便捕捉这个事件所引起变化。...总结 使用 Vitest 对我们应用程序进行单元测试是无缝Jest等替代品相比,需要更少步骤来启动和运行。

2.1K20

web前端好帮手 - Jest单元测试工具

Jest基础使用 项目接入Jest 安装JestJest类型文件,类型文件可以让代码编辑器(如Webstorm)提供Jest相关接口参数提示: npm install -D jest @types/.../test.txt"); expect(data.toString()).toBe("333"); }); 注意,Jest检测到异步测试时(比如使用了done或者函数返回promise),Jest会等待测试完成...Jest钩子只对所在分组测试生效,比如: // 在文件全局作用域,对该文件中所有测试用例生效afterEach(() => {...}); describe("group-A", () => {.../ 在group-B作用域,仅对group-B测试用例生效 beforeEach(() => {}) }); }); 以上Jest基础使用介绍,足够应付大部分场景,下面将针对Jest...如何“行内“跳过测试覆盖 特殊情况,我们需要跳过文件某几句代码测试覆盖率统计: /* istanbul ignore else: 跳过else分支覆盖统计 */if (isNaN(value)

4.9K40

实例入门 Vue.js 单元测试

单元测试是在软件开发过程要进行最低级别的测试活动,软件独立单元将在程序其他部分相隔离情况进行测试。...端到端(在浏览器等真实场景走通功能而把程序当成黑盒子测试)集成测试(集合多个测试过单元一起测试)反馈修复周期比较长、运行速度慢,测试运行不稳定,由于很多时候还要靠人工手动进行,维护成本也很高...Vue.js 单元测试工具 2.1 Jest 不同于"传统"(其实也没出现几年) jasmine / Mocha / Chai 等前端测试框架;Jest使用更简单(也许就是这个单词本意“俏皮话...实际使用,适当在 package.json jest 字段或独立 jest.config.js 里自定义配置一,会得到更适合我们测试场景。...四个基础单词 编写单元测试语法通常非常简单;对于jest来说,由于其内部使用了 Jasmine 2 来进行测试,故其用例语法 Jasmine 相同。

2.8K20

React 组件测试技巧

React 组件常见测试模式。 注意: 此页面假设你正在使用 Jest 作为测试运行器。如果你使用不同测试运行器,你可能需要调整 API,但整体解决方案是相同。...使用“假”数据 mock 数据获取可以防止由于后端不可用而导致测试不稳定,并使它们运行得更快。注意:你可能仍然希望使用一个"端到端"框架来运行测试子集,该框架可显示整个应用程序是否一起工作。...注意: React 测试库为触发事件提供了一个更简洁助手。 --- 计时器 {#timers} 你代码可能会使用基于计时器函数(如 setTimeout)来安排将来更多工作。...--- 多渲染器 {#multiple-renderers} 在极少数情况,你可能正在使用多个渲染器组件上运行测试。...在这个场景,你可以使用与它们渲染器相对应 act() 来包装更新。

4.9K00

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

当用户导航到另一个URL时,需要刷新整个页面,服务器为新页面发送新HTML。这称为服务器端呈现。 但是在现代SPAs使用是客户端呈现。...Babel等工具使开发人员能够在他们应用程序编写ES2015,而Babel将这些工具转换为ES5,以便浏览器兼容。 熟悉ES5和ES2015是至关重要。...尝试建立简单项目,如待办事项列表,黑客新闻克隆纯反应。...最终,一个明显赢家出现了,那就是Redux。Redux结合了Flux、Command pattern和Elm体系结构思想,是目前开发人员React一起使用事实上状态管理库。...在大多数情况使用ESLint就像调整项目文件配置文件一样简单。如果您不为ESLint编写新规则,那么就没有什么可学习。当错误出现时,请注意它们,并将其谷歌,以找到推荐样式。

7.4K20

前端单元测试之Jest

在过程化编程,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)方法。 集成测试,也叫组装测试或联合测试。...,并且在开发测试期间使用,用于判断在某些逻辑条件会执行某种预期结果。...Mock函数通常会提供以下三种特性: 捕获函数调用情况; 设置函数返回值; 改变函数内部实现; jest.fn() jest.fn()是创建Mock函数最简单方式,如果没有定义函数内部实现,jest.fn...当有异步方式运行代码时候,Jest需要知道当前它测试代码是否已经完成,然后它才可以转移动另一个测试,也就是说,测试用例一定要在测试对象结束之后才能够运行。...,可以使用jest --updateSnapshot ”命令重新更新缓存文件

2.7K20
领券