我不完全了解Babel的工作方式。我玩过它,它可以转换某些内容,但不能转换其他内容。诺言就是一个例子。我将设置项目的配置和结果:
我已经定位到IE 10(.browserslistrc
):
>= 1%
last 1 major version
not dead
Chrome >= 45
Firefox >= 38
Edge >= 12
Explorer >= 10
iOS >= 9
Safari >= 9
Android >= 4.4
Opera >= 30
babel.config.js
const presets = [
[
'@babel/preset-env',
{
useBuiltIns: 'entry',
debug: true,
corejs: { version: '3.2.1' }
}
]
];
module.exports = { presets };
一个名为promises.js的文件
var promise1 = new Promise(function (resolve, reject) {
setTimeout(function () {
resolve('foo');
}, 300);
});
promise1
.then(function (value) {
console.log(value);
});
我只是使用"babel src -d lib"
正如我所说,尽管IE10不支持它们,但仍按原样复制了promises文件。我已将core-js
作为依赖项包含在解决方案中,但根本没有手动调用它(我不确定Babel是否使用它)。
如果有人可以帮助我理解这一点,那就太好了。
谢谢
答案 0 :(得分:0)
使用Babel.js多花一点时间(相当于很多时间),我已经知道了我的问题的答案。
我不理解巴别塔会堆叠某些东西并填充其他东西的事实。通过polyfill,我的意思是将polyfilling的工作委托给core.js。
这花费了很长时间,因为Babel被吹捧为Javascript编译器。从技术上来说是这样。但这也是一个委托人:)
为了画布上的一些东西,这些是转译的:
这些是多填充的:
我的问题是关于诺言。答案就在这里。 希望这对其他刚接触Babel的人有所帮助。