2.1.0 • Published 5 months ago

esbuild-plugin-es5 v2.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

esbuild-build-es5

Use the @swc/core transform to convert to ES5 for the esbuild plugin.

npm package Build Status Downloads Issues Code Coverage Commitizen Friendly

Features

  • ✅ Support Tree Shaking
  • ✅ Support Code sharing (eg: async generator function)
  • ✅ Support Sourcemap
  • ✅ Support custom swc options
  • ✅ Support custom filter

Why?

esbuild does not support exporting in ES5 mode, so when our code needs to run on older devices, it must be converted to ES5. This plugin uses @swc/core to convert non-ES5 syntax to ES5 before bundling.

Performance impact

The swc conversion is introduced, the conversion steps are added, and the construction time is increased to a certain extent.

Projectesbuildesbuild + es5Plugin
three.js50ms180ms

For a test example you can clone the current project and run make demo-three-esbuild and make demo-three-esbuild-es5 for comparison.

Install

npm install esbuild-plugin-es5 @swc/helpers -D

Usage

import { es5Plugin } from 'esbuild-plugin-es5';
import path from 'path';

await esbuild.build({
  entryPoints: ['src/index.ts'],
  bundle: true,
  outfile: 'dist/index.js',
  plugins: [es5Plugin()], // # 1. Use esbuild-plugin-es5
  target: ['es5'], // # 2. Set the target to es5
  alias: {
    // # 3. Set the alias to @swc/helpers
    '@swc/helpers': path.dirname(require.resolve('@swc/helpers/package.json')),
  }
});

For a faster development experience, you can only use it in production mode.

Options

const es5Plugin= (options: { filter?: RegExp; swc?: SWCOptions }) => Es5Plugin

SWC Options : https://swc.rs/docs/configuration/compilation

2.1.0

5 months ago

2.0.3

5 months ago

2.0.2

9 months ago

2.0.1

12 months ago

2.0.0

1 year ago

1.2.0

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago

0.0.1

1 year ago