Files
vue-cli/docs/core-plugins/babel.md
Haoqun Jiang 3b3cd9060b refactor: replace cache-loader with babel-loader's built-in cache (#6142)
It's supposed to have better performance.
See https://github.com/babel/babel-loader/issues/525#issuecomment-375756108

Besides, this improves webpack 5 compatibilities as cache-loader is now
deprecated
2020-12-14 10:41:55 +08:00

1.4 KiB

@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 options of babel-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.

parallel should be set to false when using Babel in combination with non-serializable loader options, such as regexes, dates and functions. These options would not be passed correctly to babel-loader which may lead to unexpected errors.

Installing in an Already Created Project

vue add babel

Injected webpack-chain Rules

  • config.rule('js')
  • config.rule('js').use('babel-loader')