-
Notifications
You must be signed in to change notification settings - Fork 234
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.1
Details
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/@rsbuild+shared@0.6.1_@swc+helpers@0.5.3/node_modules/@rsbuild/shared/compiled/postcss-loader/index.js',
'../node_modules/.pnpm/@rsbuild+shared@0.6.1_@swc+helpers@0.5.3/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/vue-loader@15.11.1_css-loader@7.1.1_webpack@5.91.0/node_modules/vue-loader/lib/loaders/stylePostLoader.js',
'../node_modules/.pnpm/@rsbuild+shared@0.6.1_@swc+helpers@0.5.3/node_modules/@rsbuild/shared/compiled/postcss-loader/index.js',
'../node_modules/.pnpm/@rsbuild+shared@0.6.1_@swc+helpers@0.5.3/node_modules/@rsbuild/shared/compiled/less-loader/index.js',
'../debug-loader.js',
'../node_modules/.pnpm/@rsbuild+shared@0.6.1_@swc+helpers@0.5.3/node_modules/@rsbuild/shared/compiled/postcss-loader/index.js',
'../node_modules/.pnpm/@rsbuild+shared@0.6.1_@swc+helpers@0.5.3/node_modules/@rsbuild/shared/compiled/less-loader/index.js',
'../debug-loader.js',
'../node_modules/.pnpm/vue-loader@15.11.1_css-loader@7.1.1_webpack@5.91.0/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/vue-loader@15.11.1_css-loader@7.1.1_webpack@5.91.0/node_modules/vue-loader/lib/loaders/stylePostLoader.js',
'../node_modules/.pnpm/@rsbuild+shared@0.6.1_@swc+helpers@0.5.3/node_modules/@rsbuild/shared/compiled/postcss-loader/index.js',
'../node_modules/.pnpm/@rsbuild+shared@0.6.1_@swc+helpers@0.5.3/node_modules/@rsbuild/shared/compiled/less-loader/index.js',
'../debug-loader.js',
'../node_modules/.pnpm/@rsbuild+shared@0.6.1_@swc+helpers@0.5.3/node_modules/@rsbuild/shared/compiled/postcss-loader/index.js',
'../node_modules/.pnpm/@rsbuild+shared@0.6.1_@swc+helpers@0.5.3/node_modules/@rsbuild/shared/compiled/less-loader/index.js',
'../debug-loader.js',
'../node_modules/.pnpm/vue-loader@15.11.1_css-loader@7.1.1_webpack@5.91.0/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
https://github.com/xc2/rsbuild-vue-repro/tree/vue27-less-duplicating-loaders/vue27-less
Reproduce Steps
run rsbuild build
in vue27-less
skymoonya and chenjiahan
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working