I highly recommend reading this: So, what's next?
For some cases could be useful to exclude some core-js
features or generate a polyfill for target engines. This API helps conditionally include or exclude certain parts of core-js
and build for targets. modules
, exclude
and targets
options are specified in the core-js-compat
format.
import builder from 'core-js-builder';
const bundle = await builder({
// entry / module / namespace / an array of them, by default - all `core-js` modules
modules: ['core-js/actual', /^esnext\.reflect\./],
// a blacklist of entries / modules / namespaces, by default - empty list
exclude: [/^es\.math\./, 'es.number.constructor'],
// optional browserslist or core-js-compat format query
targets: '> 0.5%, not dead, ie 9-11',
// shows summary for the bundle, disabled by default
summary: {
// in the console, you could specify required parts or set `true` for enable all of them
console: { size: true, modules: false },
// in the comment in the target file, similarly to `summary.console`
comment: { size: false, modules: true },
},
// output format, 'bundle' by default, can be 'cjs' or 'esm', and in this case
// the result will not be bundled and will contain imports of required modules
format: 'bundle',
// optional target filename, if it's missed a file will not be created
filename: PATH_TO_MY_COREJS_BUNDLE,
});
ℹ️ When using TypeScript, make sure to set esModuleInterop
to true
.