You will notice a browserslist field in package.json (or a separate .browserslistrc file) specifying a range of browsers the project is targeting.
By default, it passes useBuiltIns: 'usage' to @babel/preset-env which automatically detects the polyfills needed based on the language features used in your source code.
This ensures only the minimum amount of polyfills are included in your final bundle. However, this also means if one of your dependencies has specific requirements on polyfills, by default Babel won't be able to detect it.
If one of your dependencies need polyfills, you have a few options:. If the dependency is written in an ES version that your target environments do not support: Add that dependency to the transpileDependencies option in vue.config.js.
This would enable both syntax transforms and usage-based polyfill detection for that dependency. If the dependency ships ES5 code and explicitly lists the polyfills needed: you can pre-include the needed polyfills using the polyfills option for @vue/babel-preset-app. Note that es.promise is included by default because it's very common for libs to depend on Promises.