[vuejs/vue-cli]ie11 下 Promise.prototype.finally 未定义

2024-04-30 810 views
9
Version

4.2.3

Reproduction link

https://github.com/vuejs/vue-cli

Environment info
//babel.config.js
module.exports = {
    presets: [
        '@vue/cli-plugin-babel/preset'
    ]
}
//.browserslistrc
> 1%
last 2 versions
not ie <= 8
Steps to reproduce
  1. create a new project use vue-cli
  2. npm start serve
  3. ie11打开控制台输入Promise.prototype.finally
What is expected?

ie11 能够支持finally

What is actually happening?

没有这个方法

回答

9

无法复现。 请提供实际可复现的项目代码。

7

module.exports = { presets: [ '@vue/cli-plugin-babel/preset' ] }

至少这里preset没写对 @vue/cli 4中没有问题

ie11下我有在用, 目前我这Promise没问题

5

各位大佬,我也碰到这个问题 但是按照官方的这种写法

presets: [
    ['@vue/app', {
      polyfills: [
        'es.promise',
        'es.symbol'
      ]
    }]
  ]

ie 11还是会有问题

3

官方的写法是

presets: ['@vue/cli-plugin-babel/preset']

默认就包括了 promise 相关的 polyfills 了不需要再自己写。

反而是你这样配置了之后,因为 es.promise.finallyes.promise 是两个独立的 polyfill,前者被你弄丢了。

7

module.exports = { presets: [ '@vue/cli-plugin-babel/preset' ] }

至少这里preset没写对

ie11下我有在用, 目前我这Promise没问题

那应该怎么写

6

@wollld 不好意思,这种写法在@vue/cli 4的版本下没问题. 如果还是有问题的话, 可以建一个仓库提供一个复现问题的demo