gpt4 book ai didi

javascript - 避免导入 "regenerator-runtime/runtime"

转载 作者:行者123 更新时间:2023-12-05 00:28:08 30 4
gpt4 key购买 nike

我正在使用 Parcel 来捆绑我的项目并 Jest 运行我的测试。
一切正常,但在测试中我有 async/await关键字,我必须导入 regenerator-runtime/runtime像这样:

import "regenerator-runtime/runtime"

test("read armored key", async() => {

})
而这项工作。
但是没有这个导入( import "regenerator-runtime/runtime" )我收到了这个错误消息:
ReferenceError: regeneratorRuntime is not defined
如何在异步测试中更改我的项目以在没有此导入的情况下运行?
示例: https://github.com/skhaz/parcel-regeneratorRuntime-is-not-defined

最佳答案

根据其版本,并非浏览器运行时中可用的所有功能都可以在 Node 运行时中使用。当前版本的节点支持 Promise(带有 await/async ),但由于 您正在使用 Parcel,默认情况下使用 Babel , 你的 async/await调用将被编译为使用 regenerator-runtime ,该功能的polyfill。您可以import "regenerator-runtime/runtime"every entry file (如果你不需要 polyfill,不推荐!),或者你可以告诉 babel 你的运行时是什么。
您应该能够让它与 @babel/preset-env 一起使用预设,在您的 .babelrc 中配置如下:

{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "10" // the target node version, boolean true, or "current".
}
}
]
]
}
看到这个 Medium article有关为此配置 babel 的更多信息。

观点:

不要依赖像 Parcel 这样的零配置工具:它们最终会通过创建意想不到的行为(比如你的问题)来增加你的开发时间,或者你必须花时间学习它是如何工作的。调试自己的应用程序就足够了;您也不必调试构建工具。

关于javascript - 避免导入 "regenerator-runtime/runtime",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65800993/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com