gpt4 book ai didi

javascript - Babel 可以在生成的代码中包含 regeneratorRuntime 依赖项吗?

转载 作者:行者123 更新时间:2023-12-03 06:55:35 26 4
gpt4 key购买 nike

使用 babel 定位 Node v4,生成的代码似乎依赖于 regeneratorRuntime未包含在输出中的模块。
据我了解,在执行生成的代码之前,似乎必须在运行时需要“regenerator-runtime/runtime”模块。 (通过 https://babeljs.io/docs/en/usage#polyfill )
生成器脚本:

const babel = require('@babel/core');
const out = babel.transformSync(`
(async () => {

})();
`, {
presets: [
[
"@babel/preset-env",
{
"targets": {
"node": "4"
}
}
]
]
});
输出:
"use strict";

function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }

function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }

_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
case "end":
return _context.stop();
}
}
}, _callee);
}))();
有没有办法指示 Babel 在生成的代码中包含 regeneratorRuntime 模块?
简而言之,我希望生成的输出是自包含的,没有任何运行时要求。

最佳答案

您可以通过将 @babel/plugin-transform-runtime 安装到您的项目并在 babel 配置的“插件”部分中引用它来添加该功能。
这是一个工作示例 .babelrc (babel 配置文件):

{
"presets": [
[
"@babel/preset-env",
{
"debug": false,
"module": false,
"useBuiltIns": "usage",
"corejs": 3
}
]
],
"plugins": [
"@babel/plugin-transform-runtime"
]
}

关于javascript - Babel 可以在生成的代码中包含 regeneratorRuntime 依赖项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64790744/

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