ES6 中的延迟模块加载是如何工作的

2024-03-21

我怎么能够延迟加载ES6 模块?经过lazy,我的意思是我不想实际加载模块不需要。例如,我可以使用 RequireJS 执行以下操作:

function someEventHandler() {
    var SomeModule = require('some-module'),
        module = new SomeModule();
    // ...
}

使用 ES6 导入似乎不可能实现相同的功能:

// Doesn't appear to be valid...
function someEventHandler() {
    import SomeModule from 'some-module';
    var module = new SomeModule();
    // ...
}

是否有任何可行的技术可以使用 ES6 模块仅在需要时引入依赖项?或者是跟踪完整依赖关系图并预先获取所有内容的唯一路径?


The import语句仅适用于文件的最顶部,并且它将加载所有文件。这主要是为了避免循环依赖的潜在问题。

还会有一种方法可以进行异步加载;但该规范似乎尚未最终确定。这ES6 模块加载器 https://github.com/ModuleLoader/es6-module-loaderpolyfill 包使用了一种名为System.import(moduleName)返回一个承诺,最终规范可能看起来类似:

function someEventHandler() {
    System.import('some-module').then((SomeModule) => {
        var module = new SomeModule();
        // ...
    })
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ES6 中的延迟模块加载是如何工作的 的相关文章

  • JavaScript 中的埃拉托斯特尼筛法对大量数据无限运行

    我一直在尝试写埃拉托斯特尼筛法 http en wikipedia org wiki Sieve of EratosthenesJavaScript 中的算法 基本上我只是按照以下步骤操作 创建从 2 到 n 1 的连续整数列表 令第一个素
  • Three.js:缩放几何图形后错误的 BoundingBox

    在我的场景中 我有一个简单的立方体 var test new THREE Mesh new THREE CubeGeometry 10 10 10 new THREE MeshBasicMaterial scene add test 该立方
  • 使用 JavaScript 禁用第三方 cookie

    我正在努力根据所有在欧盟运营的公司的数据保护规则实施新的 Cookie 政策合规性 根据该规则 用户在使用任何网站时必须能够拒绝 接受除必需的 Cookie 之外的所有内容 在我客户的网站中 我可以看到正在存储以下第三方 cookie ga
  • 如何更改 Google Maps v3 API for Directions 中的开始和结束标记图像

    我使用 DirectionsRender 绘制了一条路线 但我不知道如何用我自己的标记替换通用的 Google 标记 我知道并在正常的谷歌地图情况下使用它 但发现很难用开始和结束的方向标记来做到这一点 如果这是一个愚蠢的问题 感谢您的任何建
  • 如何针对 Node.js 中发生的每个错误发送电子邮件?

    假设我的 node js 应用程序正在运行 如果出现错误 我的意思是所有错误 不仅仅是网络错误 如果出现错误 则很重要 我如何调用函数向我发送电子邮件 基本上 在我希望它写入 err out 之前 我希望向我发送一封电子邮件 我正在使用no
  • 可以在初始 DOM 解析期间/之前修改 DOM 吗?

    是否可以在初始 DOM 解析期间或之前修改 DOM 或者我是否必须等到 DOM 被解析和构建之后才能与其交互 更具体地说 是否有可能阻止 DOM 中的脚本元素使用用户脚本 内容脚本或 Chrome 或 Firefox 中的类似脚本运行 在解
  • Snap.svg - 停止在可悬停元素的子元素上重新触发悬停事件

    对于一个项目 我使用的 SVG 形状由背景多边形和背景多边形上方的一些文本 我已将其转换为路径 组成 我正在使用 Snap svg 为我的形状设置动画 当我将鼠标悬停在多边形上时 形状应该缩放到特定尺寸 包括其中的所有内容 鼠标移开时 形状
  • Angular - CSS - 自定义类型=文件输入,如何使用按钮而不是标签?

    我制作了一个类型为 file 的自定义输入字段 因为我不喜欢默认的输入字段 为了实现这一目标 我做了
  • 检查 jQuery 1.7 中是否存在基于文本的选择选项

    所以我有以下 HTML 片段
  • DataTables row.add 到特定索引

    我正在替换这样的行项目 var targetRow entity row dataTable targetRow closest table dataTable DataTable dataTable row targetRow remov
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • Vuejs 2:去抖动不适用于手表选项

    当我在 VueJs 中反跳此函数时 如果我提供毫秒数作为原语 它就可以正常工作 但是 如果我将其提供为对 prop 的引用 它会忽略它 这是道具的缩写版本 props debounce type Number default 500 这是不
  • 日期出现奇怪的错误,“未捕获非法访问”

    所以我试图找到最新的DateJavascript 可以处理 我把它减少到 9 月 275760 并增加了我开始捕获未捕获的天数illegal access例外new Date 09 24 275760 to new Date 10 13 2
  • Three.js 各种大小的粒子

    我是 Three js 的新手 正在尝试找出添加 1000 个粒子的最佳方法 每个粒子都有不同的大小和颜色 每个粒子的纹理是通过绘制画布创建的 通过使用粒子系统 所有粒子都具有相同的颜色和大小 为每个粒子创建一个粒子系统是非常低效的 有没有
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • 如何使用 crypto-js 解密 AES ECB

    我正在尝试将加密数据从 flash 客户端 发送到服务器端的 javascript 在 asp 中作为 jscript 运行 有几个 javascript Aes 库 但它们实际上没有文档记录 我正在尝试使用 crypto js 但无法让代
  • 在 Shopify 商店中嵌入 Vue 组件

    在产品页面中 我尝试显示自定义 Vue 组件 为简洁起见 该组件根据给定的产品 ID 显示 Firebase 数据库中的一些信息 我最初尝试将其制作为 Shopify 应用程序 以便我可以访问他们的 API 我实现了 OAuth 并且可以检
  • 用于交互式图形绘制的轻量级 JavaScript 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有兴趣了解用于绘制交互式图表的最轻量级 javascript 库 我掌握的数据主要是与海洋研究相关的科学数据 我知道一些 jquery
  • Javascript Replace() 和 $1 问题

    我正在尝试创建一个脚本来搜索文本中的模式并在它找到的字符串周围包裹一个标签 shop attributes td each function this html function i html return html replace E 0
  • 从 FileReader 设置背景图像样式

    我正在寻找一种解决方案 允许我从文件上传输入中获取文件并通过设置 document body style backgroundImage 来预览它 以下代码用于在 Image 元素中显示预览 function setImage id tar

随机推荐

  • 服务总线会话 ReceiveBatchAsync 仅接收 1 条消息

    我正在使用启用了会话的服务总线队列 并且使用相同的 SessionId 发送 5 条消息 我的接收代码使用AcceptMessageSessionAsync获取会话锁 以便它将接收该会话的所有消息 然后它使用session ReceiveB
  • 如何将文本设置为radiobutton,该文本通过编程性的放射线群架内部?

    我有一个RadioGroup我有一些RadioButtons 我想在RadioButton以编程方式 我使用以下代码 我无法访问RadioButtonS内部RadioGroup使用Java 我该如何将文本设置在RadioButton里面一个
  • “median”没有可见的全局函数定义

    自从最新的 R 更新以来 我得到了注释 Summary xmlImport 中位数 没有可见的全局函数定义 在 CRAN 检查中 更多注释请参阅read table write table以及 R 中的其他标准函数 当我查看文件summar
  • Rails 根目录路径?

    如何获取 Rails 应用程序的根目录路径 在 Rails 3 及更高版本中 Rails root 它返回一个Pathname http www ruby doc org stdlib 1 9 3 libdoc pathname rdoc
  • 多个实体到同一个 DbSet

    假设我有两个不同的课程 它们共享一些属性 但也有一些单独的属性 public class A Shared properties public int Id get set public DateTime CreatedDtm get se
  • llvm OCaml 绑定

    我正在研究 llvm OCaml 绑定 我通过 opam 安装了 llvm 包 opam install llvm 当我在 utop 中使用 llvm 时 出现以下错误 require llvm Error The external fun
  • 使用perl解码unicode转义字符

    我讨厌问一个无疑已经回答过十几次的问题 但我发现编码问题令人困惑 并且很难将其他人的问答与我自己的问题相匹配 我正在从在线 json 文件中提取信息 但我的 perl 脚本无法正确处理 unicode 转义字符 脚本如下所示 use LWP
  • 有没有办法在没有数据源的情况下创建 LINQ 查询作为变量?

    前言 我的核心问题与此非常相似 如何编写一个干净的存储库而不将 IQueryable 暴露给应用程序的其余部分 https stackoverflow com questions 1030992 how can i write a clea
  • 不插入成员的触发器不起作用

    我有这张桌子 CREATE TABLE members member id INT PRIMARY KEY NOT NULL first name VARCHAR 20 last name VARCHAR 20 web page VARCH
  • Vimeo 网站的缩略图比 YouTube 更难

    Merged https meta stackexchange com questions 158066 what is a merged question with 从 Vimeo 获取 img 缩略图 questions 1361149
  • 我可以将一个 .mdf 文件与多个 DBMS(SQL Server 2008 和 2012)一起使用吗?

    在家里 我安装了 SQL Server 2008 R2 Express 它附加到某个 mdf 文件 我正在安装 SQL Server 2012 开发人员版 我可以将 2012 附加到同一个 mdf 文件吗 从逻辑上讲 只要 SQL Serv
  • pandas / matplotlib:分面条形图

    我正在制作一系列包含两个分类变量和一个数字的数据条形图 我所拥有的是下面的内容 但我想做的是通过分类变量之一来进行刻面 就像facet wrap in ggplot 我有一个有点有效的示例 但是我得到了错误的绘图类型 线而不是条形图 并且我
  • 为什么 pub Upgrade 不升级软件包而只是显示它们

    我有 gt pub upgrade Resolving dependencies 6 2s analyzer 0 18 0 9 newer versions available angular 0 14 0 args 0 10 0 2 5
  • 聚合来自传感器的时间序列

    我有大约 500 个传感器 每个传感器大约每分钟发出一次值 可以假设传感器的值保持恒定 直到发出下一个值 从而创建时间序列 传感器在发送数据时并不同步 因此观察时间戳会有所不同 但所有数据都是集中收集并按传感器存储 以允许按传感器子集进行过
  • 将客户行为添加到 CDI 上下文中的所有 Spring Data Jpa 存储库

    我使用 CDI 成功注入 jpa 存储库 我想向所有存储库添加自定义行为 软删除 使用 spring 时 我可以通过指定存储库基类来启用客户行为 EnableJpaRepositories repositoryBaseClass Stage
  • WPF 灵活的 TabControl 标头

    我想要一个TabControl与多个TabItems These TabItems每个都有一个标题文本 这些文本的长度可能相差很大 例如 5 个字符长和 15 个字符长 我想要TabControl仅将标题对齐一行 所有选项卡标题应使用相同的
  • 如何通过Bootstrap垂直分隔线画线?

    我正在使用 Twitter Bootstrap 我需要绘制菜单线 https www dropbox com s hl8moeabxxecu8j dropdown png https www dropbox com s hl8moeabxx
  • 将 Create-React-App 与 Material UI 结合使用

    我是 Material UI 和 ReactJS 的新手 我一直在玩创建 React 应用程序 CRA https github com facebookincubator create react app and 反应带 https gi
  • 包括控制器中的模块

    我在 ruby on Rails 应用程序的 lib 目录中完成了一个模块 就像是 module Select def self included base base extend ClassMethods end module Class
  • ES6 中的延迟模块加载是如何工作的

    我怎么能够延迟加载ES6 模块 经过lazy 我的意思是我不想实际加载模块不需要 例如 我可以使用 RequireJS 执行以下操作 function someEventHandler var SomeModule require some