UNPKG

@lynx-js/rspeedy

Version:

A webpack/rspack-based frontend toolchain for Lynx

44 lines (43 loc) 1.84 kB
import { logger, mergeRsbuildConfig } from "@rsbuild/core"; function isCI() { return !!process.env['CI'] && 'false' !== process.env['CI']; } function pluginRsdoctor(options) { return { name: 'lynx:rsbuild:rsdoctor', remove: [ 'rsbuild:rsdoctor' ], setup (api) { if ('true' !== process.env['RSDOCTOR']) return; api.onBeforeCreateCompiler(async ({ bundlerConfigs })=>{ const { RsdoctorRspackPlugin } = await import("@rsdoctor/rspack-plugin"); for (const config of bundlerConfigs){ const pluginName = 'RsdoctorRspackPlugin'; const registered = config.plugins?.some((plugin)=>'object' == typeof plugin && plugin?.['isRsdoctorPlugin'] === true || plugin?.constructor?.name === pluginName); if (registered) continue; config.plugins ??= []; const defaultOptions = { disableClientServer: isCI(), supports: { banner: true }, linter: { rules: { 'ecma-version-check': options?.linter?.rules?.['ecma-version-check'] ?? [ 'Warn', { ecmaVersion: 2019 } ] } } }; config.plugins.push(new RsdoctorRspackPlugin(mergeRsbuildConfig(defaultOptions, options))); } logger.info("Rsdoctor is enabled."); }); } }; } export { pluginRsdoctor };