Configure esbuild's target based on a browserslist query
yarn add esbuild-plugin-browserslist esbuild browserslistimport esbuild from "esbuild";
import browserslist from "browserslist";
import {
esbuildPluginBrowserslist,
resolveToEsbuildTarget,
} from "esbuild-plugin-browserslist";
await esbuild.build({
entryPoints: ["./foo/bar.ts"],
// ... other options (except `target`) ...
plugins: [
esbuildPluginBrowserslist(browserslist("defaults"), {
printUnknownTargets: false,
}),
],
});
// Or:
const target = resolveToEsbuildTarget(browserslist("defaults"), {
printUnknownTargets: false,
});
await esbuild.build({
entryPoints: ["./foo/bar.ts"],
target,
});ℹ️ CJS usage instructions
Adjust the imports as follows:
const esbuild = require("esbuild");
const browserslist = require("browserslist");
const {
esbuildPluginBrowserslist,
resolveToEsbuildTarget,
} = require("esbuild-plugin-browserslist");- Only
edge,firefox,chrome,safari,ios_saf, andnodehave direct equivalents for esbuild targets. androidandand_chrare mapped to thechrometarget, andand_ffis mapped to thefirefoxtarget.- All other browsers are ignored (
and_qq,samsung,opera,op_mini,op_mob,ie,ie_mob,bb,baidu, andkaios)
You can turn on debug logs (which will print all resolutions or failures) using DEBUG=esbuild-plugin-browserslist