如何有条件地导入 ES6 模块?

2024-03-07

我需要做类似的事情:

if (condition) {
    import something from 'something';
}
// ...
if (something) {
    something.doStuff();
}

上面的代码无法编译;它抛出SyntaxError: ... 'import' and 'export' may only appear at the top level.

我尝试使用System.import如图所示here http://www.2ality.com/2013/07/es6-modules.html#module-loader-api,但我不知道在哪里System来自。这是一个最终没有被接受的 ES6 提案吗?那篇文章中指向“编程 API”的链接将我转至已弃用的文档页面 http://wiki.ecmascript.org/doku.php?id=harmony:module_loaders.


我们现在确实有 ECMA 的动态导入提案。这是在第 3 阶段。这也可以作为babel 预设 https://babeljs.io/docs/plugins/syntax-dynamic-import/.

以下是根据您的情况进行条件渲染的方法。

if (condition) {
    import('something')
    .then((something) => {
       console.log(something.something);
    });
}

这基本上返回一个承诺。预计解析承诺会有该模块。该提案还具有其他功能,例如多个动态导入、默认导入、js 文件导入等。您可以找到有关的更多信息此处动态导入 http://2ality.com/2017/01/import-operator.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何有条件地导入 ES6 模块? 的相关文章

  • 类似于 iPhone(老虎机)的网络“选择器”选择框? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个类似 iPhone 的 选择器 控件 我可以在网络上使用它 可访问性不是问题 JavaS
  • 如何从模板脚本访问 AngularJS 变量

    我的控制器 scope totals totals 我的模板 按 html 注入的预期工作 totals 但我需要的是访问变量totals在模板的脚本中 如下所示 我试过了 scope totals totals totals 等 均无济于
  • JS专用鼠标按键

    我的鼠标侧面有两个按钮 其默认行为是 后退 和 前进 我想知道的是是否可以在 JavaScript 中检测这些鼠标按钮的点击 或者这些按钮是否是类似于键盘的 播放 音量调高 和 无线开 关 的 特殊 按钮纽扣 我不知道任何特定的鼠标事件 但
  • 我可以使用 javascript 捕获并保存网页的当前状态吗

    我需要使用 javascript 获取页面的全部内容并将其发送到服务器脚本以保存它 我想在用户使用 AJAX 和其他 javascript 工具对页面进行一些更改后执行此操作 我不想要某些元素的状态 我想基本上获取 body 标记内的所有内
  • 解析 Angular2 中的 xml 以在视图中呈现

    我是否需要解析 xml 以从 xml 获取数据以在 html 中呈现 我目前正在使用获取本地 xml 文件http get请求并在控制台日志中显示 xml 文件中的所有信息 我认为它只是在读取它 问题是如何在angular2中将xml转换为
  • 表单验证后 isValid 保持 false

    我有一个自定义验证函数 但即使它没有返回错误 表单仍然无效 我将以下属性传递给 Formik validate import files gt return import files values length 0 import files
  • 是否可以告诉 jsdoc 在与源代码分开的文件中查找该代码的文档?

    我希望内联注释尽可能短 因为我的经验是超过 3 或 4 行的注释往往会被掩盖 从而产生很多不必要的 阅读手册行 遗留系统要求我遵守与 jsdoc 兼容的格式来记录代码 如果要正确记录许多不言而喻的事情 则需要明确声明它们 实际上每个标签都可
  • parseInt() 和 Number() 有什么区别?

    How do parseInt https developer mozilla org en US docs Web JavaScript Reference Global Objects parseInt and Number https
  • Cloudflare Worker 缓存 API 出现问题

    我现在花了无数的时间尝试让缓存 API 来缓存一个简单的请求 我让它在中间工作过一次 但忘记向缓存键添加一些内容 现在它不再工作了 不用说 cache put 没有指定请求是否实际被缓存的返回值并不完全有帮助 我只能进行反复试验 有人可以给
  • 如何在 jQuery 中使用其中心作为参考点来缩小 div?

    我有以下 div div style margin left 0px height 100px width 100px background color red div 我想使用 jQueryanimate 将 div 缩小到其大小的一半
  • TinyMCE 选择文本并使用 javascript 激活链接对话

    我正在尝试编写一个自动化 使用黄瓜 水豚 硒 测试 它将在tinymce框中选择一些文本 单击链接按钮 然后打开链接选择页面 但链接按钮仅在选择某些文本时才变为活动状态 所以第一轮 tinyMCE activeEditor selectio
  • 如何将对象传递给 onclick 事件[重复]

    这个问题在这里已经有答案了 可能的重复 Javascript 循环内的事件处理程序 需要闭包吗 https stackoverflow com questions 341723 event handlers inside a javascr
  • 在模型对象上设置属性?

    Hi 我正在构建 ASP NET MVC 站点并遇到了问题 在我的项目中 我得到了一个 modelview 类 其中包含几个属性 例如 public class myModelView public int MyProperty1 get
  • jsx转js后dom未定义错误

    我创建了一个 jsx 文件 如下所示 jsx dom function use strict define jquery react react dom function React ReactDOM var AppView React c
  • 如何暂时停止标题属性显示工具提示?

    我在右键单击时显示了一个弹出 div 我知道这会破坏预期的功能 但 Google 文档会这样做 所以为什么不呢 但是 我在弹出窗口上显示的元素有一个 标题 属性集 该属性集出现在我的分区 我仍然希望工具提示能够工作 但当弹出窗口出现时就不行
  • Jquery 手风琴默认不折叠

    我正在使用 bootstrap 提供的折叠插件 这是一个 jquery 简单插件 但是它默认折叠 如何修改以使折叠项默认隐藏 只有当我按下标题时 该项目才会折叠并显示 谢谢 插件的文档 只有几行 所以只需要一分钟 http twitter
  • 为什么 JavaScript 在不同浏览器中不一致?

    在花了无数个小时修复 JS 以使其跨浏览器兼容 主要是 IE 之后 我一直在思考以下问题 Why不是 JavaScript持续的跨浏览器 我的意思是 为什么 JS 不能像 Java 和 Flash 那样好呢 相反 我们必须求助于 jQuer
  • 如何以编程方式移动 OpenLayers Vector?

    API 文档为OpenLayers Feature Vector http dev openlayers org apidocs files OpenLayers Feature Vector js html说 Vector 本身根本没有方
  • Firebug 分析问题:“没有要分析的活动”

    我想用一些 javascript jQuery 尝试一些不同的选项 看看哪个是最快的 但是我无法让分析正常工作 这是我要测试的代码 this keypress function e console profile test retrieve
  • Javascript - 从 AWS s3 存储桶读取镶木地板数据(使用快速压缩)

    In nodeJS 我正在尝试读取镶木地板文件 压缩 snappy 但没有成功 I used https github com ironSource parquetjs https github com ironSource parquet

随机推荐

  • 设置创建或更改时间戳

    Using utimes futimes futimens等等 可以设置文件的访问和修改时间戳 修改时间是文件数据最后一次改变的时间 同样 ctime 或更改时间是文件属性 例如权限 最后一次更改的时间 Linux POSIX 维护三个时间
  • WPF TreeView刷新

    我有一个问题 我用TreeView在我的 WPF 项目中可视化我的 XML 数据 问题是 当我编辑我的XmlDocument它不会刷新TreeView 但我注意到当我检查时SelectedNode 这是我编辑的XmlNode 所以我的 编辑
  • 为什么我的文本字符串在 Pygame 中呈现为实心/填充矩形? [复制]

    这个问题在这里已经有答案了 所以我制作了一个 Yo Mama 笑话生成器 它做了它应该做的事情 如果我删除所有 Pygame 特定的代码并将其打印到终端 命令行 它就会起作用 但是当我添加 Pygame 并创建一个应用程序时 它会将文本显示
  • 正则表达式:用一种模式替换另一种模式

    我正在尝试用另一种正则表达式模式替换一种正则表达式模式 st srt Awake 01x02 iNTERNAL WEBRiP XViD GeT srt st mkv Awake S01E02 iNTERNAL WEBRiP XViD GeT
  • laravel5: chdir(): 没有这样的文件或目录 (errno 2)

    当我将 Laravel 5 上的网站构建部署到 VPS 服务器时遇到问题 但在本地计算机上它工作正常 我的页面是http easyway vn http easyway vn 当前页面显示空白并出现错误 无法加载资源 服务器响应状态为 50
  • 我的脚本不会进入下一页进行抓取

    我编写了一个用于网络抓取的代码 除了下一页活动之外 一切都很好 当我运行我的代码时scrape数据只是来自网站scraping第一页不会向前移动以抓取其他页面数据 实际上 我是使用 python 进行网络抓取的新手 所以请指导我 你能修复我
  • 修改Django中间件中的地址

    我不知道是否可行 但我想使用中间件在 URL 末尾添加一些参数 modyf 请求的 URL 后可以不重定向来完成吗 IE 用户点击 some link 中间件将其重写为 some link par1 1 par2 2 其他方法是修改响应并替
  • CSS 负 z-index:这是什么意思?

    如果我向元素的 z index 属性添加负整数值 根据标准 预期效果是什么 我搜索了答案 但只找到了这个 https developer mozilla org en US docs Web CSS z index https develo
  • 我在命令面板中没有看到 hello world 命令

    So the tutorial https code visualstudio com api get started your first extension开发 Visual Studio 代码扩展说要打F5然后是命令面板 我应该在其中
  • Android getColumName 和 getColumnIndex

    我是一名 Android 新手 我的光标有问题 我无法使用以下方式访问数据 cursor get cursor getColumnIndex columnName 我尝试了以下代码来测试是否有错误 while cursor moveToNe
  • 一个模型可以“属于”任一/或多个模型吗?

    抱歉 如果这是一个有点菜鸟的问题 但希望澄清我对此的想法 我有一个模型 它可以属于一个模型 也可以属于另一个模型 例如 假设我有一个团队模型和一个成员模型 这两个模型都可以有一个 BankAccount class Team has man
  • 从 firebase 检索数据返回 NULL

    当我调用listPost 时 它将返回NULL 我想它不会等待侦听器从 firebase 获取帖子 在返回 arrayPost 之前 如何等待从 firebase 获取帖子 public Post listPost ArrayList
  • 用于部署的语言/堆栈[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在进行相当密集的重写 并可以选择以下选项 JSP Java 运行在 Tomcat 上 PHP 运行在 Apache 下 Ruby 我不确定在
  • 为什么Android虚拟设备太慢?

    我刚刚从 android 开发者网站下载了 adt bundle 来尝试一下 当我点击 运行 按钮时 问题就开始了 Android虚拟设备或 avd 速度非常慢 我有一台相当不错的机器 核心 i7 和 16go 内存 他们不知道吗 我的意思
  • 如何防止模板类被多次派生?

    我有以下模板类 template
  • 使用 Pig 中的elephantbird 进行 Json 解析

    我无法在 Pig 中解析以下数据 这是 Twitter API 在获取某个用户的所有推文后返回的内容 源数据 我删除了一些数字 以免无意中侵犯任何人的隐私 created at Sat Nov 01 23 15 45 0000 2014 i
  • Spring第一次请求非常慢

    我在 Spring Boot 中有应用程序 使用嵌入的tomcat初始化Spring Boot后 第一次响应非常慢 我该如何修复它 spring boot 有预热命令 模式吗 我也在考虑与数据库的连接 我想知道连接数据库 可能 spring
  • Winforms:不是有效的 Win32 应用程序

    我使用 VS2012 创建了一个简单的 Windows 窗体应用程序 并尝试将其安装到 XP 计算机上 不幸的是我收到以下错误消息 setup exe 不是有效的 Win32 应用程序 不可否认 我确实使用了 net 4 5 框架 这在 X
  • 使用 Jetpack Compose 上的 Spacer 填充剩余空间

    我想我可能会遗漏一些东西 有没有办法在 Compose Beta01 中实现 填充其余空间 而不需要额外的Box包裹间隔物的元素 Spacer不幸的是 没有重量调节器 Column modifier Modifier height 120
  • 如何有条件地导入 ES6 模块?

    我需要做类似的事情 if condition import something from something if something something doStuff 上面的代码无法编译 它抛出SyntaxError import an