如何在 ESM 中导出以连字符命名的变量

2024-03-13

CJS

exports['foo-bar'] = {}  // -> OK

ESM

exports['foo-bar'] = {};        // -> NG
export['foo-bar'] = {};         // -> NG
export { 'foo-bar': {} };       // -> NG
export { fooBar as foo-bar };   // -> NG
export { fooBar as 'foo-bar' }; // -> NG

通常我不会这样做,所以这不是问题,但我遇到了麻烦,因为Firebase Functions v2 仅允许名称中包含小写字母、数字和连字符 https://firebase.google.com/docs/functions/beta#other_limitations并要求我导出它。


放弃打字稿后我发现了什么

export { endpoint as "my-dashed-endpoint-name" }

我发现 firebase 仍然不让我打电话my-dashed-endpoint-name,给我错误Failed to find function my.dashed.endpoint.name in the loaded module.. hmmm.

那么什么火力基地actually要你做的,就是导出一个对象,它会将名称变成对象路径的虚线版本!

所以要得到一个名为my-dashed-endpoint-name,你必须这样做。

export let my = {
  dashed: {
    endpoint: {
      name: onCall(...),
    }
  }
}

不是最符合人体工程学的...但使用时确实更有意义

export * as post from "./post-endpoints.js"

这将为所有导出添加前缀post-endpoints.js with post- (e.g. post-delete, post-add)

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

如何在 ESM 中导出以连字符命名的变量 的相关文章

  • 更新存储在 chrome 扩展本地存储中的对象

    我正在开发一个 chrome 扩展 我将存储服务器发送的对象 例如 我将收到 命令 id 1 类型 A 大小 B 优先级 C 如果我有一个数据库 我会将其作为表中的一行插入commands 使用 chrome storage 我将这些对象的
  • 我可以在 GWT 中使用第三方 Javascript 库吗

    例如穆工具 用 js 编码对我来说很舒服 但显然不适合所有人 你当然可以 最好的事情就是给自己写一些好看的JavaScript 覆盖类型 http code google com webtoolkit doc latest DevGuide
  • 如何将 Angular Universal 应用程序部署到 Node.js 生产服务器?

    我有一个带有 Universal 的 Angular 8 应用程序 我想将其部署到共享 Web 主机生产服务器 我提前与网络主机核实过 他们告诉我可以在他们的共享网络托管上托管 Angular 通用网络应用程序 但是 无论我做什么 我都无法
  • 如何通过setTimeout函数定期打印数字?

    var i 0 function counter for i i lt 100 i setTimeout gt console log i 2000 counter 我想以 2 秒的间隔打印 i 但它立即打印 每次打印调用只需要几微秒 为什
  • AngularJS + jQuery 移动

    是否还有其他可能性来设计AngularJS以移动友好的方式应用程序CSS 我正在计划一个移动应用程序 并希望使用 AngularJS 进行逻辑和数据绑定 但我不想自己设计所有内容CSS The AngularJSFAQ说它使用jQuery
  • Firebase 数据库规则时间戳问题

    自 2017 年 10 月 29 日时间转移以来 我在使用 Firebase 产品进行开发时遇到了一些非常奇怪的行为 我正在使用 Ionic 3 开发一个混合应用程序 当我在浏览器 移动模拟设备 中进行开发和测试时 一切正常 一旦我切换到我
  • Angular 4 Http POST 不起作用

    我希望每个人都做得很好 我最近开始使用 Angular 4 4 我一直在尝试将数据发布到我的 api 服务器 但不幸的是它不起作用 我花了大约两天的时间 但仍然没有成功 甚至已经尝试过 6 7 篇文章角 io https angular i
  • Angular2:动态同步http请求

    Goal 发出一系列同步 http 请求并能够将它们作为一个可观察流进行订阅 示例 不工作 let query arr test1 test2 test3 function make request query arr if query a
  • 如何知道 .keyup() 是否是字符键(jQuery)

    如何知道 keyup 是否是字符键 jQuery input keyup function if key is a character such as a b A b c 5 3 2 etc not enter key or shift o
  • 在打字稿中获取类的键

    我有一个包含很多方法的类 我们称之为 myClass 我这样称呼它 myClass key 有没有办法从 key 获取可能的值 我希望有类似 keyof myClass 的东西 但我得到 myClass 引用一个值 但在这里被用作类型 问题
  • 轮播滑动(未滑动)事件上的火灾事件,Bootstrap 3

    Bootstrap 2 似乎可以很好地处理幻灯片事件 请参阅这个问题 https stackoverflow com questions 9651466 how to attach slide slid events to the boot
  • Firebase + Node.js:错误:找不到 XMLHttpRequest 兼容性库

    Firebase Node js On iOS 安装的 Node js npm 安装 firebase save 节点测试 js 其中 test js 是一个非常简单的连接到 Firebase 的脚本 var firebase requir
  • Android Studio - 无法解析符号“firebase”

    我目前正在将应用程序升级到新的 Firebase 版本 我按照指南进行操作 包括classpath com google gms google services 3 0 0 在我的项目 build gradle 的依赖项中以及compile
  • Graphql 将多个查询合并(组合)为一个?

    我正在尝试使用 JavaScript 将多个 GraphQL 查询合并为一个查询 我正在寻找这样的东西 let query3 mergeQueries query1 query2 我们事先不知道哪些查询将被组合 假设我有这样的查询 输入查询
  • jQuery Mobile + Admob:轮换?

    我使用 jQuery Mobile 框架创建了一个移动应用程序 所有页面都在index php中加载 使用 div 在每个页面的页脚中 我添加了Admob代码 div div div
  • 将 html 文本框的值分配给 div 的标题

    line 1
  • 为什么 JavaScript 中是 [1,2] + [3,4] = "1,23,4" ?

    我想将一个数组的元素添加到另一个数组中 所以我尝试了以下方法 1 2 3 4 它的回应是 1 23 4 到底是怎么回事 The 操作员没有为数组定义 发生的事情是 JavaScript将数组转换为字符串并将它们连接起来 Update 由于这
  • 如果 POST 响应仅包含 ID,如何将数据保存到我的 Ember 存储?

    Ember 数据期望我的服务器在每次成功后返回完整的对象POST 但是 我的 API 只返回一种元对象 其中包含id 当 Ember 收到此对象时 记录中的现有数据将被删除 除了id 例如 当我这样做时 var asset App Asse
  • JavaScript 阶乘防止无穷大

    我一直在 JavaScript 中使用这个函数来计算阶乘数 var f function factorial n if n 0 n 1 return 1 if f n gt 0 return f n return f n factorial
  • 使用部分字符串匹配进行 Firebase 查询[重复]

    这个问题在这里已经有答案了 假设我有一个简单的 firebase 实时数据库结构 其中关键是username其值为userid 现在我想搜索userid by username 如果用户名匹配 这很容易 但如何获得部分匹配的答案 更清楚地说

随机推荐

  • 如何在反应本机模式中调暗背景?

    以下是我创建的反应本机模态 但仍然找不到如何调暗背景并在弹出模态周围透明 我没有使用任何外部库 并试图在没有库的情况下找到解决方案 是否可以用这种方式来做 我的模态组件 render let modal this state modalTy
  • Xpath 获取第二个 url 以及 href 标签中的匹配文本

    一个html页面有分页链接 1个设置在页面顶部 另一个设置在页面底部 使用 HtmlUnit 我目前正在使用页面上获取 HtmlAnchorgetByAnchorText 1 顶部的某些链接存在问题 因此我想使用 XPath 引用底部链接
  • svn 与 git 浅(稀疏)签出 - 分支、提交

    我有一个非常大的网络项目 有很多 pdf 图像 php 文件 我将文件作为单个项目导入到 svn 中 我使用 svn 浅签出来签出子树的一部分 然后使用工作副本中的分支和标记等来节省空间并加快签出时间 我想知道这是否可以用 git 实现 我
  • 如何在IOS7中使#key和@key可点击

    任何人都知道如何在 IOS7 中的评论文本中使 KEY 和 NAME 可点击 例如 instagram 的做法相同 我正在尝试使用 NSMutableAttributedString 但我不确定如何检测单击事件 在下图中单击 Usernam
  • Windows 上与 taglib 的链接错误

    I built taglibWindows 的静态库如下 必须使用mingw 而不是VS 查看git clone https github com taglib taglib git git taglib 已安装cmake使用来自 cmak
  • 用C++设计事件机制

    我试图在 C 中设计一个通用的 但有些特定于用例的 事件传递机制 而不违背 新风格 C 的原则 同时又不过度使用模板 我的用例有些特殊 因为我需要完全控制事件的分发时间 事件系统是世界模拟的基础 其中世界的每次迭代都会作用于前一帧生成的事件
  • 使用 BOOST 进程在单独的线程中读取子进程标准输出

    我有一个主程序 它使用 boost 进程库来生成一个打印的子进程 Hello World 每 5 秒在其标准输出上一次 我想在主进程中的子进程的标准输出可用时读取 监视它 并在主程序中执行其他操作 我已经尝试过这些例子boost async
  • C++“无原始循环”而不损失性能

    所以 新 旧 大事 是 C 中的 无原始循环 我正在尝试以这种方式编写代码 但似乎效率很低 是的 有些 STL 算法可以做任何事情 但它们似乎效率不高 例如 我有一种情况 我想要一个指向节点数组中得分最高的节点的指针 确定该分数是一项代价高
  • search.maven.org 和 mvnrepository.com 之间的区别

    有什么区别https search maven org https search maven org and https mvnrepository com https mvnrepository com search maven org
  • 如何将 paypal 购物车中的数量设置为零

    每当我尝试从自己的 PayPal 表单订购商品时 所有值都必须大于 0 如何才能使其仅订购一件商品 而另一件商品设置为零 错误消息 您输入了无效的数量值 数量值必须是大于或等于 1 的整数 示例代码 JSFiddle http jsfidd
  • 如何在 python pandas 中使用带有 bool 的查询函数?

    我正在尝试做类似的事情 df query column a count but with df query column False count 正确的使用方法是什么query带有布尔列 这简直就是 column False gt gt g
  • 使用phonegap在eclipse for android中SQLite数据库的位置

    我正在使用phonegap 并为android 开发html 页面 但我不知道如何在使用Eclipse Juno 中查看表及其相应的数据库 我知道它在 DDMS 中的某个地方 任何人都可以告诉我我的表和数据库在 SQLite 中的路径 沿着
  • R:添加两个数据帧(不同的行数)

    我有一个数据框 df1 Type CA AR Total alpha 2 3 5 beta 1 5 6 gamma 6 2 8 delta 8 1 9 我有另一个数据框 df2 Type CA AR Total alpha 3 4 7 be
  • 将命令的输出分配给变量

    我必须在空格后面剪切字符串并将值存储在空格之前 我的示例脚本如下所示 tString This is my name echo tString cut d f1 output This 现在我想将此输出值分配给变量 我的脚本是 tStrin
  • 如何使用seaborn在分类数据上获取条形图上的标签值

    下面显示的是用于获取 seaborn 上分类数据的条形字符的语法 import seaborn as sn import matplotlib as mpl import matplotlib pyplot as plt IN data c
  • Ruby Net::HTTP::Get 和 JSON 响应

    我正在尝试连接到 API 并使用 Rails 应用程序检索 json 结果 但它似乎不起作用 举个例子 request Net HTTP Get new http example com search thing format json 当
  • “#selector”的参数不引用“@objc”方法、属性或初始值设定项

    谁能告诉我为什么这段代码给出错误消息 selector 的参数没有引用 objc 方法 属性或初始值设定项 timer Timer scheduledTimer timeInterval 0 1 target self selector s
  • 如何将接口 {} 转换为结构体

    我一直在寻找如何将接口转换为结构 但我不知道我怎么做不到 我会尽力解释我的问题 type Result struct Http code int Http msg string Response interface 该结构由向服务器发出 H
  • WCF场景下的自签名证书性能

    我读到自签名证书存在性能问题 例如 here http weblogs asp net cibrax archive 2006 08 08 Creating X509 Certificates for WSE or WCF aspx 但具体
  • 如何在 ESM 中导出以连字符命名的变量

    CJS exports foo bar gt OK ESM exports foo bar gt NG export foo bar gt NG export foo bar gt NG export fooBar as foo bar g