Skip to content

Commit

Permalink
fix: use provided version
Browse files Browse the repository at this point in the history
  • Loading branch information
mshima committed Oct 4, 2024
1 parent 6360a21 commit 326fce5
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ describe('normalizeModuleFederationOption', () => {
scope: 'default',
version: '1.0.0',
shareConfig: {
requiredVersion: '*',
requiredVersion: '^1.0.0',
singleton: false,
strictVersion: false,
},
Expand Down
34 changes: 19 additions & 15 deletions src/utils/normalizeModuleFederationOptions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -106,15 +106,15 @@ export interface ShareItem {
shareConfig: SharedConfig;
}

function removePathFromNpmPackage(packageString: string): string {
function removePathFromNpmPackage(packageString: string): string | undefined {
// 匹配npm包名的正则表达式,忽略路径部分
const regex = /^(?:@[^/]+\/)?[^/]+/;
const regex = /^(?:@[^/]+\/)?\w[^/]+/;

// 使用正则表达式匹配并提取包名
const match = packageString.match(regex);

// 返回匹配到的包名,如果没有匹配到则返回原字符串
return match ? match[0] : packageString;
return match?.[0];
}

function normalizeShareItem(
Expand All @@ -130,12 +130,18 @@ function normalizeShareItem(
strictVersion?: boolean;
}
): ShareItem {
let version: string | undefined;
try {
version = require(path.join(removePathFromNpmPackage(key), 'package.json')).version;
} catch (e) {
console.log(e);
let { version, requiredVersion } = typeof shareItem === 'object' ? shareItem : {};
if (!version) {
const npmPackage = removePathFromNpmPackage(key);
if (npmPackage) {
try {
version = require(path.join(npmPackage, 'package.json')).version;
} catch (e) {
console.log(e);
}
}
}
requiredVersion ??= version ? `^${version}` : '*';
if (typeof shareItem === 'string') {
return {
name: shareItem,
Expand All @@ -144,18 +150,18 @@ function normalizeShareItem(
from: '',
shareConfig: {
singleton: false,
requiredVersion: version ? `^${version}` : '*',
requiredVersion,
},
};
}
return {
name: key,
from: '',
version: shareItem.version || version,
version: shareItem.version ?? version,
scope: shareItem.shareScope || 'default',
shareConfig: {
singleton: shareItem.singleton || false,
requiredVersion: shareItem.requiredVersion || (version ? `^${version}` : '*'),
requiredVersion,
strictVersion: !!shareItem.strictVersion,
},
};
Expand Down Expand Up @@ -313,10 +319,8 @@ export function getNormalizeModuleFederationOptions() {

export function getNormalizeShareItem(key: string) {
const options = getNormalizeModuleFederationOptions();
const shareItem =
options.shared[removePathFromNpmPackage(key)] ||
options.shared[removePathFromNpmPackage(key) + '/'];
return shareItem;
const sharedKey = removePathFromNpmPackage(key) ?? key;
return options.shared[sharedKey];
}

export function normalizeModuleFederationOptions(
Expand Down

0 comments on commit 326fce5

Please sign in to comment.