Nuxt/packages/babel-preset-app
2019-04-15 20:43:27 +04:30
..
src feat(babel-preset-app): support specifying core-js version (#5411) 2019-03-30 23:53:17 +04:30
package.json v2.6.1 2019-04-04 22:28:06 +04:30
README.md feat(babel-preset-app): support specifying core-js version (#5411) 2019-03-30 23:53:17 +04:30

@nuxt/babel-preset-app

Default babel preset for nuxt

Usage

This is the default preset used by Nuxt, which is mainly a wrapper around the @babel/preset-env preset. It also optionally uses the @vue/babel-preset-jsx preset as well as @babel/plugin-syntax-dynamic-import, @babel/plugin-proposal-decorators, @babel/plugin-proposal-class-properties, @babel/plugin-transform-runtime. Furthermore the preset is adding polyfills.

Usually, no additional configuration is required. If needed though, there is an option to fine-tune the preset's behavior. Just add the following to nuxt.config.js:

babel: {
  presets({ isServer }) {
    return [
      [ "@nuxt/babel-preset-app", options ]
    ]
  }
}

Note: Since core-js@2 and core-js@3 are both supported from Babel 7.4.0, we recommend directly adding core-js and setting the version via the corejs option.

yarn add --dev core-js@3 @babel/runtime-corejs3

# or

yarn add --dev core-js@2 @babel/runtime-corejs2

...where options is an object with parameters, for example:

 const options = {
  useBuiltIns: "entry"
}

Below is a list of all available parameters:

Options

There are detailed docs for the parameters of '@babel/preset-env'.

Example 1. Change targets for server and client respectively

babel: {
  presets({ isServer }) {
    return [
      [
        "@nuxt/babel-preset-app",
        {
          targets: isServer
            ? { node: "current" }
            : { browsers: ["last 2 versions"], ie: 11 }
        }
      ]
    ]
  }
},