refactored the compileWithRspack pkgDir logic to handle module resolution more reliably

This commit is contained in:
Nacho Codoñer
2025-11-14 10:57:19 +01:00
parent fa66aa1a3d
commit e80453a9fc
18 changed files with 23 additions and 31 deletions

View File

@@ -2,18 +2,6 @@ const path = require("path");
const { prepareMeteorRspackConfig } = require("./meteorRspackConfigFactory");
const { builtinModules } = require("module");
/**
* Resolve a package directory from node resolution.
* @param {string} pkg
* @returns {string} absolute directory of the package
*/
function pkgDir(pkg) {
const resolved = require.resolve(`${pkg}/package.json`, {
paths: [process.cwd()],
});
return path.dirname(resolved);
}
/**
* Wrap externals for Meteor runtime (marks deps as externals).
* Usage: compileWithMeteor(["sharp", "vimeo", "fs"])
@@ -38,7 +26,11 @@ function compileWithMeteor(deps) {
* @returns {Record<string, object>} `{ meteorRspackConfigX: { module: { rules: [...] } } }`
*/
function compileWithRspack(deps, { options = {} } = {}) {
const includeDirs = deps.flat().filter(Boolean).map(pkgDir);
const includeDirs = deps.flat().filter(Boolean)
.map(pkg => typeof pkg === 'string' && !pkg.includes('node_modules')
? path.join(process.cwd(), 'node_modules', pkg)
: pkg
);
return prepareMeteorRspackConfig({
module: {

View File

@@ -1,12 +1,12 @@
{
"name": "@meteorjs/rspack",
"version": "0.1.5",
"version": "0.1.6",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@meteorjs/rspack",
"version": "0.1.5",
"version": "0.1.6",
"license": "ISC",
"dependencies": {
"fast-deep-equal": "^3.1.3",

View File

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

View File

@@ -5,7 +5,7 @@
export const DEFAULT_RSPACK_VERSION = '1.6.0';
export const DEFAULT_METEOR_RSPACK_VERSION = '0.1.5';
export const DEFAULT_METEOR_RSPACK_VERSION = '0.1.6';
export const DEFAULT_METEOR_RSPACK_REACT_HMR_VERSION = '1.4.3';

View File

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

View File

@@ -22,7 +22,7 @@
},
"devDependencies": {
"@angular/compiler-cli": "^20.0.0",
"@meteorjs/rspack": "^0.1.5",
"@meteorjs/rspack": "^0.1.6",
"@nx/angular-rspack": "^21.1.0",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.6.0",

View File

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

View File

@@ -17,7 +17,7 @@
"devDependencies": {
"@babel/preset-env": "^7.28.3",
"@babel/preset-react": "^7.23.3",
"@meteorjs/rspack": "^0.1.5",
"@meteorjs/rspack": "^0.1.6",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.6.0",
"@rspack/core": "^1.6.0",

View File

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

View File

@@ -21,7 +21,7 @@
"react-dom": "^18.2.0"
},
"devDependencies": {
"@meteorjs/rspack": "^0.1.5",
"@meteorjs/rspack": "^0.1.6",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.6.0",
"@rspack/core": "^1.6.0",

View File

@@ -15,7 +15,7 @@
"react-dom": "^18.2.0"
},
"devDependencies": {
"@meteorjs/rspack": "^0.1.5",
"@meteorjs/rspack": "^0.1.6",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.6.0",
"@rspack/core": "^1.6.0",

View File

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

View File

@@ -15,7 +15,7 @@
"react-dom": "^18.2.0"
},
"devDependencies": {
"@meteorjs/rspack": "^0.1.5",
"@meteorjs/rspack": "^0.1.6",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.6.0",
"@rspack/core": "^1.6.0",

View File

@@ -14,7 +14,7 @@
"picocolors": "^1.1.1"
},
"devDependencies": {
"@meteorjs/rspack": "^0.1.5",
"@meteorjs/rspack": "^0.1.6",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.6.0",
"@rspack/core": "^1.6.0",

View File

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

View File

@@ -16,7 +16,7 @@
"react-dom": "^17.0.2"
},
"devDependencies": {
"@meteorjs/rspack": "^0.1.5",
"@meteorjs/rspack": "^0.1.6",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.6.0",
"@rspack/core": "^1.6.0",

View File

@@ -15,7 +15,7 @@
"react-dom": "^18.2.0"
},
"devDependencies": {
"@meteorjs/rspack": "^0.1.5",
"@meteorjs/rspack": "^0.1.6",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.6.0",
"@rspack/core": "^1.6.0",

View File

@@ -17,7 +17,7 @@
"vue-router": "^4.2.5"
},
"devDependencies": {
"@meteorjs/rspack": "^0.1.5",
"@meteorjs/rspack": "^0.1.6",
"@rsdoctor/rspack-plugin": "^1.2.3",
"@rspack/cli": "^1.6.0",
"@rspack/core": "^1.6.0",