-
-
Notifications
You must be signed in to change notification settings - Fork 59
Open
Description
Version
System:
OS: Windows 11 10.0.22631
CPU: (14) x64 Intel(R) Core(TM) Ultra 7 165U
Memory: 15.78 GB / 31.43 GB
Browsers:
Chrome: 142.0.7444.177
Edge: Chromium (140.0.3485.54)
Firefox: 140.6.0 - C:\Program Files\Mozilla Firefox\firefox.exe
Internet Explorer: 11.0.22621.3527
npmPackages:
@rslib/core: ^0.18.5 => 0.18.5Details
By only upgrading to the new patch version from 0.18.4 to 0.18.5, the build error appeared for my project
> rslib mf-dev
Rslib v0.18.5
start build started...
Federated types created correctly
Federated mocks created correctly
error Build errors:
× Prevent writing to file that only differs in casing or query string from already written file.
│ This will lead to a race-condition and corrupted files on case-insensitive file systems.
│ - alert.js.map
│ - Alert.js.map
× Prevent writing to file that only differs in casing or query string from already written file.
│ This will lead to a race-condition and corrupted files on case-insensitive file systems.
│ - alert.js
│ - Alert.js
error build failed in 3.75 s
Reproduce link
https://codepen.io/Justineo/pen/yLbxxOR
Reproduce Steps
For this rslib.config.ts, a Module Federation entry file with the same characters but one is Alert (capitalized), and the other is alert (lowercase), started to suddenly break the build:
import { resolve } from "node:path";
import { NativeFederationTestsRemote } from "@module-federation/native-federation-tests/rspack";
import { NativeFederationTypeScriptRemote } from "@module-federation/native-federation-typescript/rspack";
import { pluginModuleFederation } from "@module-federation/rsbuild-plugin";
import { pluginReact } from "@rsbuild/plugin-react";
import { defineConfig } from "@rslib/core";
const peerDependencies = require("./package.json").peerDependencies;
const moduleFederationConfig = {
name: "my_library",
exposes: {
"./components/Alert": "./src/components/Alert",
"./shadcn/ui/alert": "./src/shadcn/ui/alert",
},
shared: {
react: {
requiredVersion: peerDependencies.react,
singleton: true,
eager: true,
},
"react-dom": {
requiredVersion: peerDependencies["react-dom"],
singleton: true,
eager: true,
},
},
};
export default defineConfig({
resolve: {
alias: {
"@/shadcn": resolve(__dirname, "./src/shadcn"),
},
},
lib: [
{
format: "mf",
source: {
entry: {
Alert: "./src/components/Alert.tsx",
alert: "./src/shadcn/ui/alert.tsx",
},
},
output: {
target: "web",
assetPrefix: "auto",
},
dev: {
assetPrefix: undefined,
lazyCompilation: false,
},
plugins: [pluginModuleFederation(moduleFederationConfig, {})],
},
],
tools: {
rspack: {
plugins: [
NativeFederationTypeScriptRemote({ moduleFederationConfig }),
NativeFederationTestsRemote({
moduleFederationConfig,
additionalBundlerConfig: { format: "esm" },
}),
],
lazyCompilation: false,
},
},
source: {
tsconfigPath: "./tsconfig.build.json",
},
server: {
port: 3000,
},
plugins: [pluginReact()],
});PS: The Alert files are simple React files with .tsx extension.
Metadata
Metadata
Assignees
Labels
No labels