mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-01-19 13:50:11 -06:00
It is due to a misunderstanding when upgrading babel from 7.0.0-beta.47 to 7.x. In Vue CLI, usage-based polyfills are **only** added by @babel/preset-env so that it avoids overheads. `transform-runtime` plugin adds polyfills regardless of env targets so we must disable its polyfill feature. Though, there're edge cases where runtime-helpers' polyfill dependency are not correctly added (https://github.com/babel/babel/issues/7597), so we also need to whitelist `@babel/runtime` for webpack to transpile.
@vue/cli-plugin-babel
babel plugin for vue-cli
Configuration
Uses Babel 7 + babel-loader + @vue/babel-preset-app by default, but can be configured via babel.config.js to use any other Babel presets or plugins.
By default, babel-loader excludes files inside node_modules dependencies. If you wish to explicitly transpile a dependency module, you will need to add it to the transpileDependencies option in vue.config.js:
module.exports = {
transpileDependencies: [
// can be string or regex
'my-dep',
/other-dep/
]
}
Caching
cache-loader is enabled by default and cache is stored in <projectRoot>/node_modules/.cache/babel-loader.
Parallelization
thread-loader is enabled by default when the machine has more than 1 CPU cores. This can be turned off by setting parallel: false in vue.config.js.
Installing in an Already Created Project
vue add @vue/babel
Injected webpack-chain Rules
config.rule('js')config.rule('js').use('babel-loader')config.rule('js').use('cache-loader')