From 3dc48e4ba6ae1e6d77b927a79ba9c47d382436ad Mon Sep 17 00:00:00 2001 From: "fengbo.lucky" Date: Tue, 27 Feb 2024 14:24:19 +0800 Subject: [PATCH] chore: lastIndexOf --- .../loaders/ImportCustomComponentLoader/index.ts | 2 +- .../src/target/entires/miniComponentEntry.ts | 6 ++++-- .../src/target/mini/chainModuleRule.ts | 15 +++++++++++++-- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/packages/mona-manager-plugins/mona-service-targets/mona-service-target-mini/src/plugins/loaders/ImportCustomComponentLoader/index.ts b/packages/mona-manager-plugins/mona-service-targets/mona-service-target-mini/src/plugins/loaders/ImportCustomComponentLoader/index.ts index 67c36afa9..f59500426 100644 --- a/packages/mona-manager-plugins/mona-service-targets/mona-service-target-mini/src/plugins/loaders/ImportCustomComponentLoader/index.ts +++ b/packages/mona-manager-plugins/mona-service-targets/mona-service-target-mini/src/plugins/loaders/ImportCustomComponentLoader/index.ts @@ -25,7 +25,7 @@ export default async function ImportCustomerComponentLoader(this: LoaderContext< let dirName = entryPath.replace(path.extname(entryPath), ''); // 提取npm名称 if (dirName.includes(NODE_MODULES)) { - dirName = dirName.slice(dirName.indexOf(NODE_MODULES) + NODE_MODULES.length + 1); + dirName = dirName.slice(dirName.lastIndexOf(NODE_MODULES) + NODE_MODULES.length + 1); requestType = NODE_MODULES; } else if (alias) { for (const i in alias) { diff --git a/packages/mona-manager-plugins/mona-service-targets/mona-service-target-mini/src/target/entires/miniComponentEntry.ts b/packages/mona-manager-plugins/mona-service-targets/mona-service-target-mini/src/target/entires/miniComponentEntry.ts index 3f6d778a0..6504716f4 100644 --- a/packages/mona-manager-plugins/mona-service-targets/mona-service-target-mini/src/target/entires/miniComponentEntry.ts +++ b/packages/mona-manager-plugins/mona-service-targets/mona-service-target-mini/src/target/entires/miniComponentEntry.ts @@ -25,8 +25,10 @@ export const genMiniComponentEntry = ( ) => { entryPath = entryPath.replace(path.extname(entryPath), ''); if (monaStore.nativeEntryMap.has(entryPath)) { + return monaStore.nativeEntryMap.get(entryPath)! as MiniComponentEntry; } else { + const nEntry = nativeEntry || new MiniComponentEntry(configHelper, entryPath); monaStore.nativeEntryMap.set(entryPath, nEntry); return nEntry; @@ -74,7 +76,7 @@ export class MiniEntry { get context() { let context = this.dirPath; if (this.dirPath.includes(NODE_MODULES)) { - context = context.slice(0, context.indexOf(NODE_MODULES) + NODE_MODULES.length + 1); + context = context.slice(0, context.lastIndexOf(NODE_MODULES) + NODE_MODULES.length + 1); } return context; @@ -85,7 +87,7 @@ export class MiniEntry { let outputPath = path.relative(dirPath, this.dirPath); if (this.dirPath.includes(NODE_MODULES)) { - outputPath = this.dirPath.slice(this.dirPath.indexOf(NODE_MODULES) + NODE_MODULES.length); + outputPath = this.dirPath.slice(this.dirPath.lastIndexOf(NODE_MODULES) + NODE_MODULES.length); outputPath = path.join(NPM_DIR, outputPath); } else if (!this.dirPath.startsWith(dirPath)) { const dirname = path.basename(this.dirPath); diff --git a/packages/mona-manager-plugins/mona-service-targets/mona-service-target-mini/src/target/mini/chainModuleRule.ts b/packages/mona-manager-plugins/mona-service-targets/mona-service-target-mini/src/target/mini/chainModuleRule.ts index abcedbbe6..fd31865ba 100644 --- a/packages/mona-manager-plugins/mona-service-targets/mona-service-target-mini/src/target/mini/chainModuleRule.ts +++ b/packages/mona-manager-plugins/mona-service-targets/mona-service-target-mini/src/target/mini/chainModuleRule.ts @@ -32,6 +32,13 @@ function createTtmlRules(webpackConfig: Config, _configHelper: ConfigHelper) { useRelativePath: true, name: path.join(namePrefix, '[path][name].ttml'), context: dir, + outputPath: (url: string) => { + if (url && url.includes('node_modules')) { + const outputPath1 = url.slice(url.lastIndexOf(NODE_MODULES) + NODE_MODULES.length); + return path.join(namePrefix, outputPath1); + } + return url; + }, }); ttmlRule.use('ttmlLoader').loader(path.resolve(__dirname, '../../plugins/loaders/miniTemplateLoader')); @@ -117,8 +124,12 @@ function createCssRule(webpackConfig: Config, configHelper: ConfigHelper) { postcssOptions: { plugins: [ pxtOptions.enabled - ? - [require.resolve('@bytedance/mona-manager-plugins-shared/dist/plugins/postcss/PostcssPxtransformer/index.js'), pxtOptions] + ? [ + require.resolve( + '@bytedance/mona-manager-plugins-shared/dist/plugins/postcss/PostcssPxtransformer/index.js', + ), + pxtOptions, + ] : null, ].filter(p => p), },