babel-polyfill导入不在转换代码中

时间:2017-12-20 22:55:48

标签: node.js babel babel-polyfill

我的代码的入口点以以下导入开头:

import 'source-map-support/register';
import 'babel-polyfill';
console.log('polyfill included?', global._babelPolyfill);

[...]

但是,在运行时,我发现global._babelPolyfillundefined。 我还注意到,在我编译的代码中,没有require('babel-polyfill')

为什么?

我的猜测是,巴贝尔认为不需要babel-polyfill。但是,当我不包含它时,我收到以下错误:

ReferenceError: regeneratorRuntime is not defined
at /opt/node-modules/my-module/node_modules/dependency/promise.js:9:57
at Object.<anonymous> (/opt/node-modules/my-module/node_modules/dependency/promise.js:35:2)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/opt/node-modules/fio/src/file.js:1:1)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
[...]

所以我绝对需要它。我的猜测是,以某种方式依赖(我后来在我的代码中导入的另一个节点模块)没有正确配置,并且当babel转换我的代码时它没有检测到,所以它仍然认为babel-polyfill不是必需的。

我希望实际的文档能够备份实际上为什么会出现这种情况。

更新为何与another question不同: 接受的解决方案是使用babel-polyfill,但我已经在做了。我的问题是为什么babel-polyfill没有在我的转换代码中导入,因此在我的运行代码中不可用。

0 个答案:

没有答案