diff --git a/packages/plugins/src/layout.ts b/packages/plugins/src/layout.ts index c919705968a0..7fbd6d2c1479 100644 --- a/packages/plugins/src/layout.ts +++ b/packages/plugins/src/layout.ts @@ -117,11 +117,20 @@ export default (api: IApi) => { }); api.onGenerateFiles(() => { + let realNpmClient = api.appData.npmClient; + // tnpm 作为 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 const isFlattedDepsDir = [NpmClientEnum.npm, NpmClientEnum.yarn].includes( - api.appData.npmClient, + realNpmClient, ); const PKG_TYPE_REFERENCE = ` ///