- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 230
 
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Version
System:
    OS: macOS 14.4.1
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
    Memory: 31.81 MB / 32.00 GB
    Shell: 3.7.1 - /usr/local/bin/fish
  Browsers:
    Chrome: 123.0.6312.123
    Safari: 17.4.1
  npmPackages:
    @rsbuild/core: workspace:0.0.0 => 0.6.1 
    @rsbuild/plugin-vue2: workspace:0.0.0 => 0.6.1Details
it is reported that all loaders for the less rule run twice for less code in vue2 sfc.
i added a loader for observing the loader list, and here's what it shows:
{
  '$resource': 'index.less',
  loaderIndex: 2,
  '$loaders': [
    '../node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@rsbuild/shared/compiled/postcss-loader/index.js',
    '../node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@rsbuild/shared/compiled/less-loader/index.js',
    '../debug-loader.js'
  ]
}
{
  '$resource': 'App.vue?vue&type=style&index=0&id=1b960a7f&prod&scoped=true&lang=less',
  loaderIndex: 6,
  '$loaders': [
    '../node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/vue-loader/lib/loaders/stylePostLoader.js',
    '../node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@rsbuild/shared/compiled/postcss-loader/index.js',
    '../node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@rsbuild/shared/compiled/less-loader/index.js',
    '../debug-loader.js',
    '../node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@rsbuild/shared/compiled/postcss-loader/index.js',
    '../node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@rsbuild/shared/compiled/less-loader/index.js',
    '../debug-loader.js',
    '../node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/vue-loader/lib/index.js'
  ]
}
{
  '$resource': 'App.vue?vue&type=style&index=0&id=1b960a7f&prod&scoped=true&lang=less',
  loaderIndex: 3,
  '$loaders': [
    '../node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/vue-loader/lib/loaders/stylePostLoader.js',
    '../node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@rsbuild/shared/compiled/postcss-loader/index.js',
    '../node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@rsbuild/shared/compiled/less-loader/index.js',
    '../debug-loader.js',
    '../node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@rsbuild/shared/compiled/postcss-loader/index.js',
    '../node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@rsbuild/shared/compiled/less-loader/index.js',
    '../debug-loader.js',
    '../node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/vue-loader/lib/index.js'
  ]
}Setup
rsbuild.config.ts
import { defineConfig } from "@rsbuild/core";
import { pluginVue2 } from "@rsbuild/plugin-vue2";
export default defineConfig({
  plugins: [pluginVue2()],
  output: { cleanDistPath: true },
  dev: { progressBar: false },
  tools: {
    bundlerChain(chain, { CHAIN_ID }) {
      chain.module.rule(CHAIN_ID.RULE.LESS).use("debug").loader(require.resolve("../debug-loader"));
    },
    rspack(config) {
      return config;
    },
  },
});debug-loader.js
const NodePath = require("node:path");
module.exports = function debugLoader(code) {
  console.log({
    $resource: NodePath.relative(this.context, this.resource),
    loaderIndex: this.loaderIndex,
    $loaders: this.loaders.map((l) => NodePath.relative(process.cwd(), l.path)),
  });
  return code;
};Reproduce link
Reproduce Steps
run rsbuild build in vue27-less
skymoonya and chenjiahan
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working