es6-modules相关内容

jest 如何允许修改模块?

在我在这里问的这个问题中: 为什么如果从另一个模块调用该模块,而不是从自身调用,则改变模块会更新引用吗? 我问的是模块突变的性质. 然而事实证明,ES6 模块实际上不能被改变——它们的所有属性都被视为常量.(查看此答案) 但不知何故 - 当 Jest 测试模块时 - 它们可以被变异,这就是 Jest 允许模拟的方式. 这是怎么回事? 我想它是一个正在运行的 ba ..
发布时间:2022-01-01 23:18:09 其他开发

有没有办法用 Jest 模拟私有函数?

我要测试的 ES6 模块如下所示: function privateFunction() {...}导出函数 publicFunction() {……做某事……私有函数()……做别的事……} 我正在使用 JEST 进行单元测试,我试图找到一种方法来测试 publicFunction 并通过模拟它来避免执行 privateFunction,但我无法在模拟尝试中成功.有什么想法吗? 解决方案 ..
发布时间:2022-01-01 23:12:23 前端开发

开玩笑的默认导出 - 需要与导入

我在这里看到过一些关于嘲笑默认导出的问题,但我不认为已经有人问过这个问题: 模拟正在测试的模块的依赖项的默认导出时,如果模块使用 ES6 导入语句导入依赖项,则测试套件将无法运行,说明 TypeError: (0 , _dependency.default)不是函数 但是,如果模块使用 require().default 调用代替,它会成功. 在我的理解中,import module ..
发布时间:2022-01-01 23:09:26 前端开发

ts-jest 无法识别 es6 导入

我正在向 React 代码库添加 typescript 支持,虽然应用程序运行正常,但 Jest 测试到处都失败了,显然无法识别 es6 语法. 我们为此使用了 ts-jest.以下是我在尝试处理 jest 的测试设置文件时立即收到的错误消息. 失败 src/data/reducers/reducers.test.js● 测试套件运行失败/Users/ernesto/code/app/r ..
发布时间:2022-01-01 23:09:07 其他开发

如何在 ReactJS.NET 中使用 React Hooks?

我们目前正在将前端从 jQuery 迁移到 Reactjs.NET.我们使用的是 React 16.8,它允许我们使用 React Hooks 而不是类. 我们成功地设置了我们的项目,并首先尝试使用类和服务器端渲染效果很好,但我的团队更喜欢使用 React Hooks.我尝试使用 Webpack + Babel 来转译 .jsx 文件,因为它不再使用剃刀助手 @Html.React(),但我 ..

JavaScript 中的经典脚本与模块脚本

我正在浏览 WHATWG 的 async 规范和defer 标签的 属性,当我看到这个语句时: 经典脚本可以指定defer 或 async;模块脚本可以指定async. 我浏览了经典和模块脚本的WHATWG定义,但我并没有真正弄明白.简单来说,JavaScript 中的经典和模块脚本有什么区别? 解决方案 经典脚本 只是您所知的标准 JavaScript 脚本.模块脚本是包含E ..
发布时间:2021-12-29 13:54:18 前端开发

通配符或星号 (*) 与命名或选择性导入 es6 javascript

只是想知道哪一种是使用导入的最佳方式: import * as Foo from './foo'; VS: import { bar, bar2, bar3 } from './foo'; 在效率方面,例如,我使用 webpack 来捆绑所有 JavaScript 文件.即使我没有在主代码中使用它们,第一个实际上会导入所有内容吗? 我能找到的一些参考资料是: 在 ..
发布时间:2021-12-25 19:39:00 前端开发

在 ES 6 模块中重新导出默认值

在 ES6 中,是否可以缩短以下代码.我有一个 App.js 文件和一个 index.js. index.js 从'./App'导入应用程序;导出默认应用程序; 类似的东西 index.js 从“./App.js"导出默认应用 解决方案 如果你使用 proposal-export-default-from Babel 插件(它是 stage-1 preset),您将能够使用以 ..
发布时间:2021-12-23 12:06:56 前端开发

javascript import 如何找到没有扩展名的模块?

我知道我们可以使用 import {x} from "./file" 并且变量 x 将从同一目录中的 file.js 导入.如果目录中有不同扩展名的同名文件,如何处理? 例如,如果file.js和file.ts在同一个目录下,import {x} from "./file"会怎样?它会取决于javascript的版本吗? 解决方案 是否取决于 javascript 的版本? ..

浏览器将如何处理 ES6 导入/导出语法

这个问题我想了很多天,我决定问问专家. 浏览器将如何处理新的导入/导出语法?我的意思是:模块会被异步加载吗?仅引用我的主文件或入口文件和浏览器将延迟加载所需模块. 也许我对这个新架构有遗漏或误解? 非常感谢! 问候. 解决方案 这是 现已标准化 并得到所有主要现代浏览器的支持. 模块会被异步加载吗? 是的,有两种选择;详情如下. 仅引用我的主文件或 ..

从 ES6 模块导入函数表达式或函数声明有什么区别?

据我所知(见第 16.3.2.1 节),ES6 允许不同的函数语法/类导出操作数.区别在于导出的函数是否需要在导入时被解释为函数声明,在这种情况下你写: export default function () {}//(a) 或作为函数表达式:export default (function(){});//(b). 作为一个可能的相关旁注:我读到进口被提升,但我不确定在这种情况下这意味着什么. ..
发布时间:2021-12-23 11:49:38 前端开发

ES6 导入的定义执行顺序是什么?

我尝试在互联网上搜索导入模块的执行顺序.例如,假设我有以下代码: 导入“一个"导入“两个"console.log("三"); 其中one.js和two.js的定义如下: //one.js控制台日志(“一个");//二.jsconsole.log("两个"); 控制台输出是否保证: 一二三 还是未定义? 解决方案 JavaScript 模块被异步评估.但是,所有导入都会在模块主体 ..

ES2015“导入"无法在节点 v6.0.0 中使用 --harmony_modules 选项

我正在使用 node v6.0.0 并想使用 ES2016 (ES6).但是我意识到“导入"语法不起作用.在 ES2015 中编写模块化代码不是“导入"的基础吗?我也尝试使用 --harmony_modules 选项运行节点,但仍然遇到关于“导入"的相同错误.这是代码. 没有“导入"的工作代码: 'use strict';让总和 = 0;班级编号{addNumber(num1, num2) ..
发布时间:2021-12-23 11:48:44 前端开发

不推荐使用“use strict"在 ES6 中?

我还不熟悉 ECMAScript 6.我刚刚克隆了 React Starter Kit 存储库,它使用 ES6 作为应用程序代码.我很惊讶地看到 linter 被配置禁止use strict 指令的出现,我认为这是在 ES6 之前的 JavaScript 中推荐的.那么重点是什么? 解决方案 ES6 模块始终处于严格模式.引用规范的相关部分: 10.2.1 严格模式代码 ECM ..
发布时间:2021-12-23 11:47:42 前端开发