From be7ec2142f9659773159e9fee18f0594e9a6a8cd Mon Sep 17 00:00:00 2001 From: "hanzebang.hzb" Date: Thu, 14 Mar 2024 20:44:19 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20npmClient=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=B8=BA=20tnpm=EF=BC=8C=E4=BD=86=20tnpm=20m?= =?UTF-8?q?ode=20=E4=B8=BA=20npm=20=E6=97=B6=20layout=20=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E6=B3=A8=E5=85=A5=E7=BB=9D=E5=AF=B9=E8=B7=AF=E5=BE=84=20types?= =?UTF-8?q?=20=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/plugins/src/layout.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/plugins/src/layout.ts b/packages/plugins/src/layout.ts index c919705968a0..3db497262ba6 100644 --- a/packages/plugins/src/layout.ts +++ b/packages/plugins/src/layout.ts @@ -117,11 +117,15 @@ export default (api: IApi) => { }); api.onGenerateFiles(() => { + // tnpm 作为 npmClient 时,可能使用不同的安装模式 + const realNpmClient = + (api.appData.npmClient === NpmClientEnum.tnpm && api.pkg.tnpm?.mode) || + api.appData.npmClient; // use absolute path to types references in `npm/yarn` will cause case problems. // https://github.com/umijs/umi/discussions/10947 // https://github.com/umijs/umi/discussions/11570 const isFlattedDepsDir = [NpmClientEnum.npm, NpmClientEnum.yarn].includes( - api.appData.npmClient, + realNpmClient, ); const PKG_TYPE_REFERENCE = ` /// Date: Mon, 18 Mar 2024 16:05:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E4=BB=85=E8=80=83=E8=99=91=20npm?= =?UTF-8?q?=E3=80=81yarn=20=E4=B8=A4=E7=A7=8D=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/plugins/src/layout.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/plugins/src/layout.ts b/packages/plugins/src/layout.ts index 3db497262ba6..7fbd6d2c1479 100644 --- a/packages/plugins/src/layout.ts +++ b/packages/plugins/src/layout.ts @@ -117,10 +117,15 @@ export default (api: IApi) => { }); api.onGenerateFiles(() => { + let realNpmClient = api.appData.npmClient; // tnpm 作为 npmClient 时,可能使用不同的安装模式 - const realNpmClient = - (api.appData.npmClient === NpmClientEnum.tnpm && api.pkg.tnpm?.mode) || - api.appData.npmClient; + if ( + api.appData.npmClient === NpmClientEnum.tnpm && + api.pkg.tnpm?.mode && + [NpmClientEnum.npm, NpmClientEnum.yarn].includes(api.pkg.tnpm.mode) + ) { + realNpmClient = api.pkg.tnpm.mode; + } // use absolute path to types references in `npm/yarn` will cause case problems. // https://github.com/umijs/umi/discussions/10947 // https://github.com/umijs/umi/discussions/11570