zephyr-modernjs-plugin
Version:
Modernjs plugin for Zephyr
48 lines (47 loc) • 1.74 kB
JavaScript
import "node:module";
import { assertZephyrBuildTarget, ze_log } from "zephyr-agent";
const pluginName = 'zephyr-modernjs-plugin';
const isDev = 'development' === process.env['NODE_ENV'];
function shouldApplyDevPublicPathFix(target, development = isDev) {
return development && 'tap-app' !== target;
}
const with_zephyr_withZephyr = (zephyrOptions)=>{
if (zephyrOptions?.target !== void 0) assertZephyrBuildTarget(zephyrOptions.target, 'withZephyr({ target })');
return {
name: pluginName,
pre: [
'@modern-js/plugin-module-federation-config'
],
async setup (api) {
api['modifyRspackConfig'](async (config)=>{
const { withZephyr } = await import("zephyr-rspack-plugin");
const configureZephyr = withZephyr(zephyrOptions);
return await configureZephyr(config);
});
},
usePlugins: shouldApplyDevPublicPathFix(zephyrOptions?.target) ? [
zephyrFixPublicPath(zephyrOptions?.target)
] : []
};
};
function zephyrFixPublicPath(target) {
return {
name: 'zephyr-publicpath-fix',
pre: [
pluginName
],
setup (api) {
api['modifyRspackConfig'](async (config, { isServer })=>{
if (!isServer && 'tap-app' !== target) {
ze_log.misc('Modifying publicPath for Dev Server');
config.output = {
...config.output,
publicPath: 'auto'
};
}
});
}
};
}
export { shouldApplyDevPublicPathFix, with_zephyr_withZephyr as withZephyr };
//# sourceMappingURL=with-zephyr.mjs.map