support resolve.extensions to get first the customized values

This commit is contained in:
Nacho Codoñer
2025-09-04 14:05:53 +02:00
parent 7a09a37e04
commit aac0307d5b
20 changed files with 29 additions and 15 deletions

View File

@@ -267,6 +267,14 @@ export function mergeSplitOverlap(...configs) {
return splitOverlapRulesMerge(aRules, bRules);
}
// Ensure custom extensions first
if (key === 'resolve.extensions') {
const aRules = Array.isArray(a) ? a : [];
const bRules = Array.isArray(b) ? b : [];
const merged = [...bRules, ...aRules];
return [...new Set(merged)];
}
// Handle plugins uniqueness
if (key === 'plugins') {
return unique(

View File

@@ -1,12 +1,12 @@
{
"name": "@meteorjs/rspack",
"version": "0.0.38",
"version": "0.0.39",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@meteorjs/rspack",
"version": "0.0.38",
"version": "0.0.39",
"license": "ISC",
"dependencies": {
"ignore-loader": "^0.1.2",

View File

@@ -1,6 +1,6 @@
{
"name": "@meteorjs/rspack",
"version": "0.0.38",
"version": "0.0.39",
"description": "Configuration logic for using Rspack in Meteor projects",
"main": "index.js",
"type": "module",

View File

@@ -5,7 +5,7 @@
export const DEFAULT_RSPACK_VERSION = '1.5.0';
export const DEFAULT_METEOR_RSPACK_VERSION = '0.0.38';
export const DEFAULT_METEOR_RSPACK_VERSION = '0.0.39';
export const DEFAULT_METEOR_RSPACK_REACT_HMR_VERSION = '1.4.3';

View File

@@ -17,6 +17,7 @@ export default defineConfig(Meteor => {
'@helper/alias': '/imports/helpers/alias.js',
'@react/alias': '/node_modules/react',
},
extensions: ['.jsx'],
},
module: {
rules: [

View File

@@ -4,6 +4,7 @@ import { LinksCollection } from '/imports/api/links';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
import '@helper/alias';
import ReactAlias from '@react/alias';
import './resolve-extensions/first';
console.log('@react/alias loaded', ReactAlias.version);

View File

@@ -0,0 +1 @@
console.log('first.jsx loaded');

View File

@@ -0,0 +1 @@
console.log('first.tsx loaded');

View File

@@ -17,7 +17,7 @@
"vue-router": "^4.2.5"
},
"devDependencies": {
"@meteorjs/rspack": "^0.0.38",
"@meteorjs/rspack": "^0.0.39",
"@rspack/cli": "^1.4.8",
"@rspack/core": "^1.4.8",
"@tailwindcss/postcss": "^4.1.12",

View File

@@ -35,6 +35,8 @@ describe('ReactRouter App Bundling /', () => {
await waitForMeteorOutput(result.outputLines, /.*default-package loaded.*/);
// custom-package loading
await waitForMeteorOutput(result.outputLines, /.*custom-package loaded.*/);
// resolve.extensions loading
await waitForMeteorOutput(result.outputLines, /.*first\.jsx loaded.*/);
},
afterRunRebuildClient: async ({ allConsoleLogs }) => {
// Check for HMR output as enabled by default

View File

@@ -20,7 +20,7 @@
"devDependencies": {
"@graphql-tools/webpack-loader": "^7.0.0",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@meteorjs/rspack": "^0.0.38",
"@meteorjs/rspack": "^0.0.39",
"@rspack/cli": "^1.5.0",
"@rspack/core": "^1.5.0",
"@rspack/plugin-react-refresh": "^1.4.3",

View File

@@ -14,7 +14,7 @@
"meteor-node-stubs": "^1.2.12"
},
"devDependencies": {
"@meteorjs/rspack": "^0.0.38",
"@meteorjs/rspack": "^0.0.39",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.5.0",
"@rspack/core": "^1.5.0",

View File

@@ -21,7 +21,7 @@
"react-dom": "^18.2.0"
},
"devDependencies": {
"@meteorjs/rspack": "^0.0.38",
"@meteorjs/rspack": "^0.0.39",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.5.0",
"@rspack/core": "^1.5.0",

View File

@@ -12,7 +12,7 @@
"meteor-node-stubs": "^1.2.12"
},
"devDependencies": {
"@meteorjs/rspack": "^0.0.38",
"@meteorjs/rspack": "^0.0.39",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.5.0",
"@rspack/core": "^1.5.0",

View File

@@ -15,7 +15,7 @@
"react-dom": "^18.2.0"
},
"devDependencies": {
"@meteorjs/rspack": "^0.0.38",
"@meteorjs/rspack": "^0.0.39",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.5.0",
"@rspack/core": "^1.5.0",

View File

@@ -14,7 +14,7 @@
"picocolors": "^1.1.1"
},
"devDependencies": {
"@meteorjs/rspack": "^0.0.38",
"@meteorjs/rspack": "^0.0.39",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.5.0",
"@rspack/core": "^1.5.0",

View File

@@ -13,7 +13,7 @@
"meteor-node-stubs": "^1.2.12"
},
"devDependencies": {
"@meteorjs/rspack": "^0.0.38",
"@meteorjs/rspack": "^0.0.39",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.5.0",
"@rspack/core": "^1.5.0",

View File

@@ -16,7 +16,7 @@
"react-dom": "^17.0.2"
},
"devDependencies": {
"@meteorjs/rspack": "^0.0.38",
"@meteorjs/rspack": "^0.0.39",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.5.0",
"@rspack/core": "^1.5.0",

View File

@@ -15,7 +15,7 @@
"react-dom": "^18.2.0"
},
"devDependencies": {
"@meteorjs/rspack": "^0.0.38",
"@meteorjs/rspack": "^0.0.39",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.5.0",
"@rspack/core": "^1.5.0",

View File

@@ -17,7 +17,7 @@
"vue-router": "^4.2.5"
},
"devDependencies": {
"@meteorjs/rspack": "^0.0.38",
"@meteorjs/rspack": "^0.0.39",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.5.0",
"@rspack/core": "^1.5.0",