Javascript Babel能否在生成的代码中包含regeneratorRuntime依赖项?

Javascript Babel能否在生成的代码中包含regeneratorRuntime依赖项?,javascript,node.js,babeljs,babel-polyfill,Javascript,Node.js,Babeljs,Babel Polyfill,将babel用于目标节点v4,生成的代码似乎取决于输出中未包含的regeneratorRuntime模块 据我所知,在执行生成的代码之前,似乎必须在运行时使用“再生器运行时/运行时”模块。(via) 生成器脚本: const babel = require('@babel/core'); const out = babel.transformSync(` (async () => { })(); `, { presets: [ [ "@babel

将babel用于目标节点v4,生成的代码似乎取决于输出中未包含的
regeneratorRuntime
模块

据我所知,在执行生成的代码之前,似乎必须在运行时使用“再生器运行时/运行时”模块。(via)

生成器脚本:

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配置的“plugins”部分中引用它来添加该功能

这是一个工作
.babelrc
(babel conf文件)的示例:

{
“预设”:[
[
“@babel/preset env”,
{
“调试”:错误,
“模块”:错误,
“useBuiltIns”:“用法”,
“corejs”:3
}
]
],
“插件”:[
“@babel/plugin转换运行时”
]
}

您是否尝试在代码上销售再生器运行时?您可以将其添加到输出和导入中:我尝试了此配置,但是输出仍然不包含运行时所需的任何多边形填充。(它只在文件顶部添加了多个
import
语句..)。。目标(如果可能的话)是让babel在生成的代码中包含所需的多边形填充。我完全可以确认此配置有效,因为我个人使用它,可能您需要更多多边形填充,因为您使用的是旧的nodejs版本。尝试在预设环境的配置对象中添加
“targets”:{“node”:“v4.0.0”}