es6-modules相关内容
我使用 typescript 用 lit-html 编写了一个简单的演示: import {html, TemplateResult} from 'lit-html';导出默认函数 sayHello(name: string): TemplateResult {return html`
你好 ${name}
`;} 并使用 jest 编写一些简单的测试: import sayH
..
在我在这里问的这个问题中: 为什么如果从另一个模块调用该模块,而不是从自身调用,则改变模块会更新引用吗? 我问的是模块突变的性质. 然而事实证明,ES6 模块实际上不能被改变——它们的所有属性都被视为常量.(查看此答案) 但不知何故 - 当 Jest 测试模块时 - 它们可以被变异,这就是 Jest 允许模拟的方式. 这是怎么回事? 我想它是一个正在运行的 ba
..
我要测试的 ES6 模块如下所示: function privateFunction() {...}导出函数 publicFunction() {……做某事……私有函数()……做别的事……} 我正在使用 JEST 进行单元测试,我试图找到一种方法来测试 publicFunction 并通过模拟它来避免执行 privateFunction,但我无法在模拟尝试中成功.有什么想法吗? 解决方案
..
我在这里看到过一些关于嘲笑默认导出的问题,但我不认为已经有人问过这个问题: 模拟正在测试的模块的依赖项的默认导出时,如果模块使用 ES6 导入语句导入依赖项,则测试套件将无法运行,说明 TypeError: (0 , _dependency.default)不是函数 但是,如果模块使用 require().default 调用代替,它会成功. 在我的理解中,import module
..
我正在向 React 代码库添加 typescript 支持,虽然应用程序运行正常,但 Jest 测试到处都失败了,显然无法识别 es6 语法. 我们为此使用了 ts-jest.以下是我在尝试处理 jest 的测试设置文件时立即收到的错误消息. 失败 src/data/reducers/reducers.test.js● 测试套件运行失败/Users/ernesto/code/app/r
..
如何使用 Jest 测试 ES6 模块. 示例: sum.js const sum = function (a, b) {返回 a + b;}导出默认金额; sum.test.js import sum from './sum';test('加 1 + 2 等于 3', () => {期望(总和(1,2)).toBe(3);}); 解决方案 唯一的要求是将你的 test 环境
..
我们目前正在将前端从 jQuery 迁移到 Reactjs.NET.我们使用的是 React 16.8,它允许我们使用 React Hooks 而不是类. 我们成功地设置了我们的项目,并首先尝试使用类和服务器端渲染效果很好,但我的团队更喜欢使用 React Hooks.我尝试使用 Webpack + Babel 来转译 .jsx 文件,因为它不再使用剃刀助手 @Html.React(),但我
..
如何连接 ES6 模块? var foo = 2;//这通常适用于模块.导出函数 Bar() {}//...连接...import { Bar } from 'javascripts/bar'//这个文件在拼接场景中不再存在.导出函数 Bam() {} 解决方案 2020-09-02 更新: 世界语已被
..
我正在浏览 WHATWG 的 async 规范和defer 标签的 属性,当我看到这个语句时: 经典脚本可以指定defer 或 async;模块脚本可以指定async. 我浏览了经典和模块脚本的WHATWG定义,但我并没有真正弄明白.简单来说,JavaScript 中的经典和模块脚本有什么区别? 解决方案 经典脚本 只是您所知的标准 JavaScript 脚本.模块脚本是包含E
..
来自 https://2ality.com/2019/04/nodejs-esm-impl.html Node 12 应该支持 es6 模块;但是,我只是不断收到错误: 问题:如何在 node 12 中使用 es6 模块制作 MVP? package.json {"name": "dynamic-es6-mod",“版本":“1.0.0",“描述": "","main": "src/
..
只是想知道哪一种是使用导入的最佳方式: import * as Foo from './foo'; VS: import { bar, bar2, bar3 } from './foo'; 在效率方面,例如,我使用 webpack 来捆绑所有 JavaScript 文件.即使我没有在主代码中使用它们,第一个实际上会导入所有内容吗? 我能找到的一些参考资料是: 在
..
在 ES6 中,是否可以缩短以下代码.我有一个 App.js 文件和一个 index.js. index.js 从'./App'导入应用程序;导出默认应用程序; 类似的东西 index.js 从“./App.js"导出默认应用 解决方案 如果你使用 proposal-export-default-from Babel 插件(它是 stage-1 preset),您将能够使用以
..
我知道我们可以使用 import {x} from "./file" 并且变量 x 将从同一目录中的 file.js 导入.如果目录中有不同扩展名的同名文件,如何处理? 例如,如果file.js和file.ts在同一个目录下,import {x} from "./file"会怎样?它会取决于javascript的版本吗? 解决方案 是否取决于 javascript 的版本?
..
这个问题我想了很多天,我决定问问专家. 浏览器将如何处理新的导入/导出语法?我的意思是:模块会被异步加载吗?仅引用我的主文件或入口文件和浏览器将延迟加载所需模块. 也许我对这个新架构有遗漏或误解? 非常感谢! 问候. 解决方案 这是 现已标准化 并得到所有主要现代浏览器的支持. 模块会被异步加载吗? 是的,有两种选择;详情如下. 仅引用我的主文件或
..
使用 ES6 模块,我知道我可以别名命名导入: import { foo as bar } from 'my-module'; 而且我知道我可以导入默认导入: import defaultMember from 'my-module'; 我想为默认导入设置别名,我认为以下方法可行: 从'my-module'导入defaultMember作为别名; 但这会导致解析(语法)错误. 我
..
据我所知(见第 16.3.2.1 节),ES6 允许不同的函数语法/类导出操作数.区别在于导出的函数是否需要在导入时被解释为函数声明,在这种情况下你写: export default function () {}//(a) 或作为函数表达式:export default (function(){});//(b). 作为一个可能的相关旁注:我读到进口被提升,但我不确定在这种情况下这意味着什么.
..
我尝试在互联网上搜索导入模块的执行顺序.例如,假设我有以下代码: 导入“一个"导入“两个"console.log("三"); 其中one.js和two.js的定义如下: //one.js控制台日志(“一个");//二.jsconsole.log("两个"); 控制台输出是否保证: 一二三 还是未定义? 解决方案 JavaScript 模块被异步评估.但是,所有导入都会在模块主体
..
我正在使用 node v6.0.0 并想使用 ES2016 (ES6).但是我意识到“导入"语法不起作用.在 ES2015 中编写模块化代码不是“导入"的基础吗?我也尝试使用 --harmony_modules 选项运行节点,但仍然遇到关于“导入"的相同错误.这是代码. 没有“导入"的工作代码: 'use strict';让总和 = 0;班级编号{addNumber(num1, num2)
..
我有一些 TypeScript 文件: MyClass.ts class MyClass {构造函数(){}}出口 = MyClass; MyFunc.ts function fn() { return 0;}出口 = fn; MyConsumer.ts import * as MC from './MyClass';import * as fn from './MyFunc';f
..
我还不熟悉 ECMAScript 6.我刚刚克隆了 React Starter Kit 存储库,它使用 ES6 作为应用程序代码.我很惊讶地看到 linter 被配置禁止use strict 指令的出现,我认为这是在 ES6 之前的 JavaScript 中推荐的.那么重点是什么? 解决方案 ES6 模块始终处于严格模式.引用规范的相关部分: 10.2.1 严格模式代码 ECM
..