Babel根本不改变承诺

问题描述 投票:0回答:1

我不完全了解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"呼叫cli

正如我说的,尽管IE10不支持它们,但仍按原样复制了promises文件。我已经将core-js作为依赖项包含在解决方案中,但是根本没有手动调用它(我不确定Babel是否使用它)。

[如果有人可以帮助我理解这一点,那就太好了。

谢谢

babeljs browserify core-js
1个回答
0
投票

使用Babel.js花费了更多时间(相当于很多时间),我已经知道了我的问题的答案。

我不理解巴别塔会堆叠某些东西并填充其他东西的事实。通过polyfill,我的意思是将polyfilling的工作委托给core.js。

这花了很长时间,因为Babel被吹捧为Javascript编译器。从技术上来说是这样。但这也是一个委托人:)

为了绘制一些东西,这些已经被转译:

  • 箭头功能
  • 班级
  • 解构运算符

虽然这些是多填充的:

  • 获取
  • 承诺

我的问题是关于诺言。答案就在这里。希望这对其他刚接触Babel的人有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.