3.33.14 • Published 9 months ago

@kokojs/babel-preset-h5 v3.33.14

Weekly downloads
-
License
MIT
Repository
-
Last release
9 months ago

Babel 预设配置 - H5

babel-preset-h5 是有赞 H5 应用统一的 Babel 配置。

使用方式

安装

yarn add @kokojs/babel-preset-h5 --dev

PS: 如果项目中安装了 @youzan/koko-preset-h5,默认就会依赖 @kokojs/babel-preset-h5,因此可以跳过安装。

配置

babel.config.js 中添加对应的 preset:

module.exports = {
  presets: ['@kokojs/babel-preset-h5'],
};

如果是 npm 包的话,还需要在 dependencies 里添加以下两个依赖:

{
  "dependencies": {
    "@babel/runtime": "7.x",
    "core-js": "3.x"
  }
}

配置项

useESModules

  • Type: boolean
  • Default: true

useESModules 用于控制编译后的模块是否为 ESModule,默认为true,如果需要编译到 commonjs 模块,可以将这项配置设置为false

module.exports = {
  presets: [
    [
      '@kokojs/babel-preset-h5',
      {
        useESModules: false,
      },
    ],
  ],
};

一般情况下,我们推荐默认输出 ESModule 模块,因为 ESModule 可以触发 Webpack 的 Tree Shaking 和 Scope Hoisting,从而减少代码体积.

如果你的 npm 包需要适配 Webpack 1.x 的旧仓库,则必须输出 commonjs 模块,因为 Webpack 1.x 不支持直接编译 ESModule.

当然,你也可以通过工具来同时输出两个版本,比如使用 rollup 的 output.format 来同时输出 ESModule 和 commonjs.

useBuiltIns

  • Type: string | boolean
  • Default: 'usage'
  • 可选值:'entry'false

等同于 @babel/preset-env 的 useBuiltIns 选项,用于控制 polyfill 的行为。

默认情况下,代码中会添加 core-js@3 的 polyfill 来确保兼容性。

在某些特殊场景下可以将这项配置设置为 false 来禁用 core-js(比如这个包需要在小程序中使用,而小程序不支持 core-js)。

注意:如果禁用了 core-js,请谨慎在代码中使用 ESNext API,以避免出现兼容性问题。

module.exports = {
  presets: [
    [
      '@kokojs/babel-preset-h5',
      {
        useBuiltIns: false,
      },
    ],
  ],
};

coreJsPure

  • Type: boolean
  • Default: false

coreJsPure 用于控制 core-js 的 polyfill 是否污染全局命名空间。

配置该属性后,编译结果的依赖将从 core-js 变更为 @babel/runtime-corejs3。

此选项的优先级高于 useBuiltIns 选项。

{
  "dependencies": {
    "@babel/runtime-corejs3": "7.x"
  }
}

loose

  • Type: boolean
  • Default: true

是否开启 babel-preset-envloose 模式。

module.exports = {
  presets: [['@kokojs/babel-preset-h5', { loose: false }]],
};

excludeStyleLibs

  • Type: string[]
  • Default: []

excludeStyleLibs 用于控制打包时需要排除的组件库样式文件,通过配置这个属性,可以在将组件处理为 externals 依赖时,不打包对应的样式文件

enableDevTranspile

  • Type: boolean
  • Default: false

是否在 dev 模式下将代码编译至 ES5,注意开启后会降低 dev 的编译速度。

默认情况下,我们会在 build 时将代码编译至 ES5,而在 dev 阶段仅会对代码进行最小程度的编译(仅保证最新浏览器能运行)。

targets

  • Type: string | string[] | object
  • Default: ['Android >= 4.0', 'iOS >= 8']

编译目标浏览器版本,等同于 @babel/preset-env 的 targets 选项

optimizeConstEnums

  • Type: boolean
  • Default: false

传递给 @babel/preset-typescript 的参数,是否开启 const enum 编译优化。

module.exports = {
  presets: [
    [
      '@kokojs/babel-preset-h5',
      {
        optimizeConstEnums: true,
      },
    ],
  ],
};

内置插件列表

@babel/preset-env

用于 polyfill ESNext 语法和添加 core-js3

@babel/plugin-transform-runtime

用于将 Babel helper 转换为 import 形式,减少代码体积

@babel/preset-typescript

用于转换 TypeScript 语法

babel-plugin-import

用于组件库按需引入,目前包含以下组件库:

  • vant
  • @youzan/vis-ui
  • @youzan/captain
  • @youzan/brand-ui
  • @youzan/captain-showcase
  • @youzan/wsc-membercenter
  • @youzan/pay-components-h5

注意:此配置中不包含旧版 captain-ui,如果项目中依然使用了旧版 captain-ui,请保留对 captain-ui 的按需引入配置

@babel/plugin-proposal-class-properties

用于转换 class 的属性

@vue/babel-preset-jsx

用于转换 Vue JSX 语法,详见 vuejs/jsx

@babel/plugin-proposal-decorators

装饰器语法支持,可用于结合 vue-property-decorator 来使用 TS 编写 Vue 文件

维护者

陈嘉涵。

4.0.0-rc.0

9 months ago

3.33.14

10 months ago

3.33.13

1 year ago

3.33.12

1 year ago

3.33.11

1 year ago

3.33.10

1 year ago

3.33.10-beta.31

1 year ago

3.33.10-beta.30

1 year ago

3.33.10-beta.28

1 year ago

3.33.10-beta.29

1 year ago

3.33.10-beta.27

1 year ago

3.33.10-beta.26

1 year ago

3.33.10-beta.17

1 year ago

3.33.10-beta.19

1 year ago

3.33.10-beta.18

1 year ago

3.33.10-beta.24

1 year ago

3.33.10-beta.23

1 year ago

3.33.10-beta.25

1 year ago

3.33.10-beta.20

1 year ago

3.33.10-beta.22

1 year ago

3.33.10-beta.21

1 year ago

3.33.10-beta.15

1 year ago

3.33.10-beta.16

1 year ago

3.33.10-beta.14

1 year ago

3.33.10-beta.13

1 year ago

3.33.10-beta.12

1 year ago

3.33.10-beta.11

1 year ago

3.33.10-beta.10

1 year ago

3.33.10-beta.8

1 year ago

3.33.10-beta.7

1 year ago

3.33.10-beta.9

1 year ago

3.33.10-beta.4

1 year ago

3.33.10-beta.3

1 year ago

3.33.10-beta.6

1 year ago

3.33.10-beta.5

1 year ago

3.33.10-beta.2

1 year ago

3.33.10-beta.1

1 year ago

3.33.2

2 years ago

3.33.3

2 years ago

3.33.4

2 years ago

3.33.5

2 years ago

3.33.6

2 years ago

3.33.7

2 years ago

3.33.8

2 years ago

3.33.9

2 years ago

3.33.1

2 years ago

3.32.19

3 years ago

3.32.18

3 years ago

3.32.17

3 years ago

3.32.16

3 years ago

3.32.15

3 years ago

3.32.14

3 years ago

3.32.12

3 years ago

3.32.13

3 years ago

3.32.9-alpha.1

3 years ago

3.32.9-alpha.2

3 years ago

3.32.9-alpha.3

3 years ago

3.32.6

4 years ago

3.32.7

4 years ago

3.32.8

4 years ago

3.32.9

3 years ago

3.32.11

3 years ago

3.32.10

3 years ago

3.32.2-alpha.6

4 years ago

3.32.9-alpha.0

3 years ago

3.32.4

4 years ago

3.32.5

4 years ago

3.31.0

4 years ago

3.31.1

4 years ago

3.32.2-alpha.5

4 years ago

3.32.2-alpha.4

4 years ago

3.32.2-alpha.3

4 years ago

3.32.2-alpha.2

4 years ago

3.32.2-alpha.1

4 years ago

3.32.2-alpha.0

4 years ago

3.30.7-beta.0

4 years ago

3.32.0

4 years ago

3.32.1

4 years ago

3.32.2

4 years ago

3.32.3

4 years ago

3.32.2-beta.0

4 years ago

3.30.8-beta.1

4 years ago

3.30.8-beta.2

4 years ago

3.30.8-beta.0

4 years ago

3.31.2-beta.2

4 years ago

3.30.6

4 years ago

3.31.2-beta.0

4 years ago

3.31.2-beta.1

4 years ago

3.30.8-beta.7

4 years ago

3.30.8-beta.5

4 years ago

3.30.8-beta.6

4 years ago

3.30.8-beta.3

4 years ago

3.30.8-beta.4

4 years ago

3.30.5

4 years ago

3.30.4-beta.0

4 years ago

3.30.3-beta.0

4 years ago

3.30.4

4 years ago

3.30.0

4 years ago

3.30.1

4 years ago

3.30.2

4 years ago

3.29.5

4 years ago

3.29.4

4 years ago

3.29.7

4 years ago

3.29.6

4 years ago

3.29.9

4 years ago

3.29.8

4 years ago

3.29.3

4 years ago

3.29.1

4 years ago

3.29.0

4 years ago

3.29.2

4 years ago

3.28.6

4 years ago

3.28.5

4 years ago

3.28.4

4 years ago

3.28.3

4 years ago

3.28.2

4 years ago

3.28.1

4 years ago

3.28.0

4 years ago

3.28.0-ncc.4

4 years ago

3.28.0-ncc.3

4 years ago

3.28.0-ncc.2

4 years ago

3.28.0-ncc.1

4 years ago

3.28.0-ncc.0

4 years ago

3.27.0

4 years ago

3.26.4

4 years ago

3.26.3

4 years ago

3.26.2

4 years ago

3.26.0

4 years ago

3.26.1

4 years ago

3.25.0

4 years ago

3.24.6

4 years ago

3.24.5

4 years ago

3.24.2

4 years ago

3.24.1

4 years ago

3.24.4

4 years ago

3.24.3

4 years ago

3.24.0

4 years ago

3.23.0

4 years ago

3.22.1

4 years ago

3.22.0

4 years ago

3.21.3

4 years ago

3.21.2

4 years ago

3.21.1

4 years ago

3.21.0-beta.4

4 years ago

3.21.0

4 years ago

3.21.0-beta.3

4 years ago

3.21.0-beta.2

4 years ago

3.20.7

4 years ago

3.20.6

4 years ago

3.20.5

4 years ago

3.20.4

4 years ago

3.20.3

4 years ago

3.20.0

4 years ago

3.20.2

4 years ago

3.20.1

4 years ago

3.19.14

4 years ago

3.19.13

4 years ago

3.19.12

4 years ago

3.19.11

4 years ago