UNPKG

@roots/bud-extensions

Version:

bud.js core module

37 lines (36 loc) 1.23 kB
import { __decorate } from "tslib"; import { Extension } from '@roots/bud-framework/extension'; import { disabled, expose, label, } from '@roots/bud-framework/extension/decorators'; import isUndefined from '@roots/bud-support/isUndefined'; /** * ESM output configuration */ let Esm = class Esm extends Extension { /** * {@link Extension.buildBefore} */ async buildBefore(bud) { bud.hooks .fromMap({ 'build.experiments': (experiments = {}) => ({ ...experiments, outputModule: true, }), 'build.output.module': true, }) .when(() => !isUndefined(bud.context.manifest?.imports), ({ hooks }) => hooks.on(`build.externals`, externals => ({ ...(externals ?? {}), ...bud.context.manifest.imports, }))) .when(bud.extensions.get(`@roots/bud-extensions/html-webpack-plugin`) .isEnabled, ({ extensions }) => extensions .get(`@roots/bud-extensions/html-webpack-plugin`) .set(`scriptLoading`, `module`)); } }; Esm = __decorate([ label(`@roots/bud-extensions/esm`), expose(`esm`), disabled ], Esm); export default Esm;