/
githubmirror
/
angular-cli
Обзор
Документация
Войти
/
githubmirror
/
angular-cli
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
packages/angular/cli/src/utilities/project.ts
56 строк
2 KB
Charles Lyding
refactor: improve `findUp` utility correctness and performance
13 янв 2026, 17:31
13 янв 2026, 17:31
8ba6967
Код
Авторство
О чём код?
/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.dev/license */ import { normalize } from '@angular-devkit/core'; import * as fs from 'node:fs'; import * as os from 'node:os'; import * as path from 'node:path'; import { findUpSync } from './find-up'; interface PackageDependencies { dependencies?: Record<string, string>; devDependencies?: Record<string, string>; } export function findWorkspaceFile(currentDirectory = process.cwd()): string | null { const possibleConfigFiles = ['angular.json', '.angular.json']; const configFilePath = findUpSync(possibleConfigFiles, currentDirectory); if (configFilePath === null) { return null; } const possibleDir = path.dirname(configFilePath); const homedir = os.homedir(); if (normalize(possibleDir) === normalize(homedir)) { const packageJsonPath = path.join(possibleDir, 'package.json'); try { const packageJsonText = fs.readFileSync(packageJsonPath, 'utf-8'); const packageJson = JSON.parse(packageJsonText) as PackageDependencies; if (!containsCliDep(packageJson)) { // No CLI dependency return null; } } catch { // No or invalid package.json return null; } } return configFilePath; } function containsCliDep(obj?: PackageDependencies): boolean { const pkgName = '@angular/cli'; if (!obj) { return false; } return !!(obj.dependencies?.[pkgName] || obj.devDependencies?.[pkgName]); }