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(使用前将#替换为@)