@@ -16,6 +16,7 @@ import {
16
16
IDictionary ,
17
17
} from "./common/declarations" ;
18
18
import { injector } from "./common/yok" ;
19
+ import { IProjectConfigService } from "./definitions/project" ;
19
20
export class PackageManager implements IPackageManager {
20
21
private packageManager : INodePackageManager ;
21
22
private _packageManagerName : string ;
@@ -27,7 +28,8 @@ export class PackageManager implements IPackageManager {
27
28
private $yarn : INodePackageManager ,
28
29
private $pnpm : INodePackageManager ,
29
30
private $logger : ILogger ,
30
- private $userSettingsService : IUserSettingsService
31
+ private $userSettingsService : IUserSettingsService ,
32
+ private $projectConfigService : IProjectConfigService
31
33
) { }
32
34
33
35
@cache ( )
@@ -140,6 +142,25 @@ export class PackageManager implements IPackageManager {
140
142
) ;
141
143
}
142
144
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
+
143
164
if ( pm === PackageManagers . yarn || this . $options . yarn ) {
144
165
this . _packageManagerName = PackageManagers . yarn ;
145
166
return this . $yarn ;
0 commit comments