import babelLoader from "babel-loader"; import { ConfigItem } from "@babel/core"; export default babelLoader.custom(() => { // Extract the custom options in the custom plugin function myPlugin() { return { visitor: {}, }; } return { // Passed the loader options. // customOptions({ opt1, opt2, ...loader }) { // return { // // Pull out any custom options that the loader might have. // custom: { opt1, opt2 }, // // // Pass the options back with the two custom options removed. // loader, // }; // }, // Passed Babel's 'PartialConfig' object. config(cfg: ConfigItem) { return { ...cfg.options, plugins: [ ...((cfg.options && cfg.options["plugins"]) || []), [myPlugin], ], }; }, // result(result) { // return { // ...result, // code: result.code + "\n// Generated by some custom loader", // }; // }, }; });