@@ -16,6 +16,7 @@ import {
1616 IDictionary ,
1717} from "./common/declarations" ;
1818import { injector } from "./common/yok" ;
19+ import { IProjectConfigService } from "./definitions/project" ;
1920export class PackageManager implements IPackageManager {
2021 private packageManager : INodePackageManager ;
2122 private _packageManagerName : string ;
@@ -27,7 +28,8 @@ export class PackageManager implements IPackageManager {
2728 private $yarn : INodePackageManager ,
2829 private $pnpm : INodePackageManager ,
2930 private $logger : ILogger ,
30- private $userSettingsService : IUserSettingsService
31+ private $userSettingsService : IUserSettingsService ,
32+ private $projectConfigService : IProjectConfigService
3133 ) { }
3234
3335 @cache ( )
@@ -140,6 +142,25 @@ export class PackageManager implements IPackageManager {
140142 ) ;
141143 }
142144
145+ try {
146+ const configPm = this . $projectConfigService . getValue (
147+ "cli.packageManager"
148+ ) ;
149+
150+ if ( configPm ) {
151+ this . $logger . trace (
152+ `Determined packageManager to use from user config is: ${ configPm } `
153+ ) ;
154+ pm = configPm ;
155+ }
156+ } catch ( err ) {
157+ // ignore error, but log info
158+ this . $logger . trace (
159+ "Tried to read cli.packageManager from project config and failed. Error is: " ,
160+ err
161+ ) ;
162+ }
163+
143164 if ( pm === PackageManagers . yarn || this . $options . yarn ) {
144165 this . _packageManagerName = PackageManagers . yarn ;
145166 return this . $yarn ;
0 commit comments