|
1 |
| -import { existsSync, writeFileSync } from 'fs'; |
| 1 | +import { existsSync, readFileSync, writeFileSync } from 'fs'; |
2 | 2 | import * as os from 'os';
|
3 | 3 | import * as path from 'path';
|
4 | 4 | import {
|
@@ -155,9 +155,38 @@ export function getPackageManager(): string {
|
155 | 155 | }
|
156 | 156 | }
|
157 | 157 |
|
| 158 | + // Only check legacy if updated workspace is not found. |
| 159 | + if (!workspace) { |
| 160 | + const legacyPackageManager = getLegacyPackageManager(); |
| 161 | + if (legacyPackageManager !== null) { |
| 162 | + return legacyPackageManager; |
| 163 | + } |
| 164 | + } |
158 | 165 | return 'npm';
|
159 | 166 | }
|
160 | 167 |
|
| 168 | +// Fallback, check for packageManager in config file in v1.* global config. |
| 169 | +function getLegacyPackageManager(): string | null { |
| 170 | + const homeDir = os.homedir(); |
| 171 | + if (homeDir) { |
| 172 | + const legacyGlobalConfigPath = path.join(homeDir, '.angular-cli.json'); |
| 173 | + if (existsSync(legacyGlobalConfigPath)) { |
| 174 | + const content = readFileSync(legacyGlobalConfigPath, 'utf-8'); |
| 175 | + |
| 176 | + const ast = parseJsonAst(content, JsonParseMode.Loose); |
| 177 | + if (ast.kind != 'object') { |
| 178 | + return null; |
| 179 | + } |
| 180 | + const cfg = ast as JsonAstObject; |
| 181 | + if (cfg.value.packageManager && typeof cfg.value.packageManager === 'string' && |
| 182 | + cfg.value.packageManager !== 'default') { |
| 183 | + return cfg.value.packageManager; |
| 184 | + } |
| 185 | + } |
| 186 | + } |
| 187 | + return null; |
| 188 | +} |
| 189 | + |
161 | 190 | export function getDefaultSchematicCollection(): string {
|
162 | 191 | let workspace = getWorkspace('local');
|
163 | 192 |
|
|
0 commit comments