From 10cce2c86e2f4ead5ead36d79f06f3478b069b6c Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Tue, 1 Mar 2022 15:28:31 +0100 Subject: [PATCH] refactor(@angular/cli): re-organize the Angular CLI package folder structure --- .../cli/bin/postinstall/analytics-prompt.js | 2 +- packages/angular/cli/lib/cli/index.ts | 14 ++-- packages/angular/cli/lib/init.ts | 6 +- packages/angular/cli/models/command.ts | 4 +- packages/angular/cli/models/interface.ts | 2 +- .../angular/cli/models/schematic-command.ts | 12 +-- .../analytics}/analytics-collector.ts | 0 .../{models => src/analytics}/analytics.ts | 0 .../architect-command-module.ts | 68 +---------------- .../command-builder/command-module.ts | 6 +- .../command-builder}/command-runner.ts | 46 ++++++------ .../schematics-command-module.ts | 4 +- .../command-builder/utilities/architect.ts | 73 +++++++++++++++++++ .../command-builder/utilities}/json-help.ts | 2 +- .../command-builder/utilities}/json-schema.ts | 0 .../cli/{ => src}/commands/add/add-impl.ts | 8 +- .../angular/cli/{ => src}/commands/add/cli.ts | 4 +- .../commands/add/long-description.md | 0 .../cli/{ => src}/commands/analytics/cli.ts | 6 +- .../commands/analytics/long-description.md | 0 .../cli/{ => src}/commands/build/cli.ts | 4 +- .../commands/build/long-description.md | 0 .../cli/{ => src}/commands/config/cli.ts | 2 +- .../{ => src}/commands/config/config-impl.ts | 4 +- .../commands/config/long-description.md | 2 - .../cli/{ => src}/commands/deploy/cli.ts | 4 +- .../commands/deploy/long-description.md | 0 .../angular/cli/{ => src}/commands/doc/cli.ts | 2 +- .../angular/cli/{ => src}/commands/e2e/cli.ts | 4 +- .../{ => src}/commands/extract-i18n/cli.ts | 4 +- .../cli/{ => src}/commands/generate/cli.ts | 6 +- .../commands/generate/generate-impl.ts | 4 +- .../cli/{ => src}/commands/lint/cli.ts | 4 +- .../commands/lint/long-description.md | 0 .../commands/make-this-awesome/cli.ts | 5 +- .../angular/cli/{ => src}/commands/new/cli.ts | 4 +- .../cli/{ => src}/commands/new/new-impl.ts | 4 +- .../angular/cli/{ => src}/commands/run/cli.ts | 6 +- .../commands/run/long-description.md | 0 .../cli/{ => src}/commands/serve/cli.ts | 4 +- .../cli/{ => src}/commands/test/cli.ts | 4 +- .../commands/test/long-description.md | 0 .../cli/{ => src}/commands/update/cli.ts | 2 +- .../commands/update/long-description.md | 0 .../src/commands/update/schematic/index.ts | 7 +- .../{ => src}/commands/update/update-impl.ts | 13 ++-- .../cli/{ => src}/commands/version/cli.ts | 10 +-- packages/angular/cli/src/typings.ts | 6 +- .../angular/cli/{ => src}/utilities/color.ts | 0 .../angular/cli/{ => src}/utilities/config.ts | 12 +-- .../cli/{ => src}/utilities/find-up.ts | 0 .../{ => src}/utilities/install-package.ts | 4 +- .../cli/{ => src}/utilities/json-file.ts | 0 .../cli/{ => src}/utilities/log-file.ts | 0 .../cli/{ => src}/utilities/package-json.ts | 0 .../{ => src}/utilities/package-manager.ts | 2 +- .../{ => src}/utilities/package-metadata.ts | 0 .../cli/{ => src}/utilities/package-tree.ts | 0 .../cli/{ => src}/utilities/project.ts | 0 .../angular/cli/{ => src}/utilities/prompt.ts | 0 .../cli/{ => src}/utilities/spinner.ts | 0 .../angular/cli/{ => src}/utilities/tty.ts | 0 .../cli/{ => src}/utilities/version.ts | 4 +- scripts/json-help.ts | 2 +- 64 files changed, 187 insertions(+), 199 deletions(-) rename packages/angular/cli/{models => src/analytics}/analytics-collector.ts (100%) rename packages/angular/cli/{models => src/analytics}/analytics.ts (100%) rename packages/angular/cli/{utilities => src}/command-builder/architect-command-module.ts (79%) rename packages/angular/cli/{utilities => src}/command-builder/command-module.ts (97%) rename packages/angular/cli/{lib/cli => src/command-builder}/command-runner.ts (77%) rename packages/angular/cli/{utilities => src}/command-builder/schematics-command-module.ts (97%) create mode 100644 packages/angular/cli/src/command-builder/utilities/architect.ts rename packages/angular/cli/{utilities/command-builder => src/command-builder/utilities}/json-help.ts (98%) rename packages/angular/cli/{utilities/command-builder => src/command-builder/utilities}/json-schema.ts (100%) rename packages/angular/cli/{ => src}/commands/add/add-impl.ts (97%) rename packages/angular/cli/{ => src}/commands/add/cli.ts (94%) rename packages/angular/cli/{ => src}/commands/add/long-description.md (100%) rename packages/angular/cli/{ => src}/commands/analytics/cli.ts (93%) rename packages/angular/cli/{ => src}/commands/analytics/long-description.md (100%) rename packages/angular/cli/{ => src}/commands/build/cli.ts (75%) rename packages/angular/cli/{ => src}/commands/build/long-description.md (100%) rename packages/angular/cli/{ => src}/commands/config/cli.ts (96%) rename packages/angular/cli/{ => src}/commands/config/config-impl.ts (97%) rename packages/angular/cli/{ => src}/commands/config/long-description.md (82%) rename packages/angular/cli/{ => src}/commands/deploy/cli.ts (83%) rename packages/angular/cli/{ => src}/commands/deploy/long-description.md (100%) rename packages/angular/cli/{ => src}/commands/doc/cli.ts (97%) rename packages/angular/cli/{ => src}/commands/e2e/cli.ts (83%) rename packages/angular/cli/{ => src}/commands/extract-i18n/cli.ts (71%) rename packages/angular/cli/{ => src}/commands/generate/cli.ts (96%) rename packages/angular/cli/{ => src}/commands/generate/generate-impl.ts (93%) rename packages/angular/cli/{ => src}/commands/lint/cli.ts (81%) rename packages/angular/cli/{ => src}/commands/lint/long-description.md (100%) rename packages/angular/cli/{ => src}/commands/make-this-awesome/cli.ts (90%) rename packages/angular/cli/{ => src}/commands/new/cli.ts (91%) rename packages/angular/cli/{ => src}/commands/new/new-impl.ts (88%) rename packages/angular/cli/{ => src}/commands/run/cli.ts (93%) rename packages/angular/cli/{ => src}/commands/run/long-description.md (100%) rename packages/angular/cli/{ => src}/commands/serve/cli.ts (72%) rename packages/angular/cli/{ => src}/commands/test/cli.ts (73%) rename packages/angular/cli/{ => src}/commands/test/long-description.md (100%) rename packages/angular/cli/{ => src}/commands/update/cli.ts (98%) rename packages/angular/cli/{ => src}/commands/update/long-description.md (100%) rename packages/angular/cli/{ => src}/commands/update/update-impl.ts (98%) rename packages/angular/cli/{ => src}/commands/version/cli.ts (95%) rename packages/angular/cli/{ => src}/utilities/color.ts (100%) rename packages/angular/cli/{ => src}/utilities/config.ts (97%) rename packages/angular/cli/{ => src}/utilities/find-up.ts (100%) rename packages/angular/cli/{ => src}/utilities/install-package.ts (98%) rename packages/angular/cli/{ => src}/utilities/json-file.ts (100%) rename packages/angular/cli/{ => src}/utilities/log-file.ts (100%) rename packages/angular/cli/{ => src}/utilities/package-json.ts (100%) rename packages/angular/cli/{ => src}/utilities/package-manager.ts (97%) rename packages/angular/cli/{ => src}/utilities/package-metadata.ts (100%) rename packages/angular/cli/{ => src}/utilities/package-tree.ts (100%) rename packages/angular/cli/{ => src}/utilities/project.ts (100%) rename packages/angular/cli/{ => src}/utilities/prompt.ts (100%) rename packages/angular/cli/{ => src}/utilities/spinner.ts (100%) rename packages/angular/cli/{ => src}/utilities/tty.ts (100%) rename packages/angular/cli/{ => src}/utilities/version.ts (88%) diff --git a/packages/angular/cli/bin/postinstall/analytics-prompt.js b/packages/angular/cli/bin/postinstall/analytics-prompt.js index d9e0b48738..2635b8483c 100644 --- a/packages/angular/cli/bin/postinstall/analytics-prompt.js +++ b/packages/angular/cli/bin/postinstall/analytics-prompt.js @@ -14,7 +14,7 @@ if ('NG_CLI_ANALYTICS' in process.env) { } try { - var analytics = require('../../models/analytics'); + var analytics = require('../../src/analytics/analytics'); analytics .hasGlobalAnalyticsConfiguration() diff --git a/packages/angular/cli/lib/cli/index.ts b/packages/angular/cli/lib/cli/index.ts index 3070ea229f..e1d43055d8 100644 --- a/packages/angular/cli/lib/cli/index.ts +++ b/packages/angular/cli/lib/cli/index.ts @@ -9,14 +9,14 @@ import { schema } from '@angular-devkit/core'; import { createConsoleLogger } from '@angular-devkit/core/node'; import { format } from 'util'; -import { colors, removeColor } from '../../utilities/color'; -import { CommandModuleError } from '../../utilities/command-builder/command-module'; -import { AngularWorkspace, getWorkspaceRaw } from '../../utilities/config'; -import { writeErrorToLogFile } from '../../utilities/log-file'; -import { findWorkspaceFile } from '../../utilities/project'; -import { runCommand } from './command-runner'; +import { CommandModuleError } from '../../src/command-builder/command-module'; +import { runCommand } from '../../src/command-builder/command-runner'; +import { colors, removeColor } from '../../src/utilities/color'; +import { AngularWorkspace, getWorkspaceRaw } from '../../src/utilities/config'; +import { writeErrorToLogFile } from '../../src/utilities/log-file'; +import { findWorkspaceFile } from '../../src/utilities/project'; -export { VERSION } from '../../utilities/version'; +export { VERSION } from '../../src/utilities/version'; const debugEnv = process.env['NG_DEBUG']; const isDebug = debugEnv !== undefined && debugEnv !== '0' && debugEnv.toLowerCase() !== 'false'; diff --git a/packages/angular/cli/lib/init.ts b/packages/angular/cli/lib/init.ts index 5e6045a812..5e0d5aaeb8 100644 --- a/packages/angular/cli/lib/init.ts +++ b/packages/angular/cli/lib/init.ts @@ -11,9 +11,9 @@ import 'symbol-observable'; import { promises as fs } from 'fs'; import * as path from 'path'; import { SemVer } from 'semver'; -import { colors } from '../utilities/color'; -import { isWarningEnabled } from '../utilities/config'; -import { VERSION } from '../utilities/version'; +import { colors } from '../src/utilities/color'; +import { isWarningEnabled } from '../src/utilities/config'; +import { VERSION } from '../src/utilities/version'; (async () => { /** diff --git a/packages/angular/cli/models/command.ts b/packages/angular/cli/models/command.ts index d1d5801323..1e78c1348c 100644 --- a/packages/angular/cli/models/command.ts +++ b/packages/angular/cli/models/command.ts @@ -7,8 +7,8 @@ */ import { analytics, logging } from '@angular-devkit/core'; -import { Option } from '../utilities/command-builder/json-schema'; -import { AngularWorkspace } from '../utilities/config'; +import { Option } from '../src/command-builder/utilities/json-schema'; +import { AngularWorkspace } from '../src/utilities/config'; import { CommandContext } from './interface'; export interface BaseCommandOptions { diff --git a/packages/angular/cli/models/interface.ts b/packages/angular/cli/models/interface.ts index 652f1279df..e4135dab48 100644 --- a/packages/angular/cli/models/interface.ts +++ b/packages/angular/cli/models/interface.ts @@ -7,7 +7,7 @@ */ import { analytics, logging } from '@angular-devkit/core'; -import { AngularWorkspace } from '../utilities/config'; +import { AngularWorkspace } from '../src/utilities/config'; /** * A command runner context. diff --git a/packages/angular/cli/models/schematic-command.ts b/packages/angular/cli/models/schematic-command.ts index 8e8da4a49c..6c0ddc0a41 100644 --- a/packages/angular/cli/models/schematic-command.ts +++ b/packages/angular/cli/models/schematic-command.ts @@ -16,12 +16,12 @@ import { } from '@angular-devkit/schematics/tools'; import * as inquirer from 'inquirer'; import * as systemPath from 'path'; -import { colors } from '../utilities/color'; -import { parseJsonSchemaToOptions } from '../utilities/command-builder/json-schema'; -import { getProjectByCwd, getSchematicDefaults, getWorkspace } from '../utilities/config'; -import { ensureCompatibleNpm, getPackageManager } from '../utilities/package-manager'; -import { isTTY } from '../utilities/tty'; -import { isPackageNameSafeForAnalytics } from './analytics'; +import { isPackageNameSafeForAnalytics } from '../src/analytics/analytics'; +import { parseJsonSchemaToOptions } from '../src/command-builder/utilities/json-schema'; +import { colors } from '../src/utilities/color'; +import { getProjectByCwd, getSchematicDefaults, getWorkspace } from '../src/utilities/config'; +import { ensureCompatibleNpm, getPackageManager } from '../src/utilities/package-manager'; +import { isTTY } from '../src/utilities/tty'; import { BaseCommandOptions, Command } from './command'; import { CommandContext } from './interface'; import { SchematicEngineHost } from './schematic-engine-host'; diff --git a/packages/angular/cli/models/analytics-collector.ts b/packages/angular/cli/src/analytics/analytics-collector.ts similarity index 100% rename from packages/angular/cli/models/analytics-collector.ts rename to packages/angular/cli/src/analytics/analytics-collector.ts diff --git a/packages/angular/cli/models/analytics.ts b/packages/angular/cli/src/analytics/analytics.ts similarity index 100% rename from packages/angular/cli/models/analytics.ts rename to packages/angular/cli/src/analytics/analytics.ts diff --git a/packages/angular/cli/utilities/command-builder/architect-command-module.ts b/packages/angular/cli/src/command-builder/architect-command-module.ts similarity index 79% rename from packages/angular/cli/utilities/command-builder/architect-command-module.ts rename to packages/angular/cli/src/command-builder/architect-command-module.ts index 744618faaf..4ad170a95a 100644 --- a/packages/angular/cli/utilities/command-builder/architect-command-module.ts +++ b/packages/angular/cli/src/command-builder/architect-command-module.ts @@ -9,13 +9,9 @@ import { Architect, Target } from '@angular-devkit/architect'; import { WorkspaceNodeModulesArchitectHost } from '@angular-devkit/architect/node'; import { json } from '@angular-devkit/core'; -import { existsSync } from 'fs'; -import { resolve } from 'path'; import { Argv } from 'yargs'; -import { isPackageNameSafeForAnalytics } from '../../models/analytics'; -import { getPackageManager } from '../package-manager'; +import { isPackageNameSafeForAnalytics } from '../analytics/analytics'; import { - CommandContext, CommandModule, CommandModuleError, CommandModuleImplementation, @@ -23,7 +19,7 @@ import { Options, OtherOptions, } from './command-module'; -import { Option, parseJsonSchemaToOptions } from './json-schema'; +import { getArchitectTargetOptions } from './utilities/architect'; export interface ArchitectCommandArgs { configuration?: string; @@ -234,63 +230,3 @@ export abstract class ArchitectCommandModule )); } } - -/** - * Get architect target schema options. - */ -export async function getArchitectTargetOptions( - context: CommandContext, - target: Target, -): Promise { - const { workspace } = context; - if (!workspace) { - return []; - } - - const architectHost = new WorkspaceNodeModulesArchitectHost(workspace, workspace.basePath); - const builderConf = await architectHost.getBuilderNameForTarget(target); - - let builderDesc; - try { - builderDesc = await architectHost.resolveBuilder(builderConf); - } catch (e) { - if (e.code === 'MODULE_NOT_FOUND') { - await warnOnMissingNodeModules(context); - throw new CommandModuleError(`Could not find the '${builderConf}' builder's node package.`); - } - - throw e; - } - - return parseJsonSchemaToOptions( - new json.schema.CoreSchemaRegistry(), - builderDesc.optionSchema as json.JsonObject, - true, - ); -} - -export async function warnOnMissingNodeModules(context: CommandContext): Promise { - const basePath = context.workspace?.basePath; - if (!basePath) { - return; - } - - // Check for a `node_modules` directory (npm, yarn non-PnP, etc.) - if (existsSync(resolve(basePath, 'node_modules'))) { - return; - } - - // Check for yarn PnP files - if ( - existsSync(resolve(basePath, '.pnp.js')) || - existsSync(resolve(basePath, '.pnp.cjs')) || - existsSync(resolve(basePath, '.pnp.mjs')) - ) { - return; - } - - const packageManager = await getPackageManager(basePath); - context.logger.warn( - `Node packages may not be installed. Try installing with '${packageManager} install'.`, - ); -} diff --git a/packages/angular/cli/utilities/command-builder/command-module.ts b/packages/angular/cli/src/command-builder/command-module.ts similarity index 97% rename from packages/angular/cli/utilities/command-builder/command-module.ts rename to packages/angular/cli/src/command-builder/command-module.ts index fef0e34d18..b5412a42ce 100644 --- a/packages/angular/cli/utilities/command-builder/command-module.ts +++ b/packages/angular/cli/src/command-builder/command-module.ts @@ -16,9 +16,9 @@ import { CommandModule as YargsCommandModule, Options as YargsOptions, } from 'yargs'; -import { createAnalytics } from '../../models/analytics'; -import { AngularWorkspace } from '../config'; -import { Option } from './json-schema'; +import { createAnalytics } from '../analytics/analytics'; +import { AngularWorkspace } from '../utilities/config'; +import { Option } from './utilities/json-schema'; export type Options = { [key in keyof T as CamelCaseKey]: T[key] }; diff --git a/packages/angular/cli/lib/cli/command-runner.ts b/packages/angular/cli/src/command-builder/command-runner.ts similarity index 77% rename from packages/angular/cli/lib/cli/command-runner.ts rename to packages/angular/cli/src/command-builder/command-runner.ts index f92a0f179a..5cfcbacbba 100644 --- a/packages/angular/cli/lib/cli/command-runner.ts +++ b/packages/angular/cli/src/command-builder/command-runner.ts @@ -9,31 +9,27 @@ import { logging } from '@angular-devkit/core'; import yargs from 'yargs'; import { Parser } from 'yargs/helpers'; -import { AddCommandModule } from '../../commands/add/cli'; -import { AnalyticsCommandModule } from '../../commands/analytics/cli'; -import { BuildCommandModule } from '../../commands/build/cli'; -import { ConfigCommandModule } from '../../commands/config/cli'; -import { DeployCommandModule } from '../../commands/deploy/cli'; -import { DocCommandModule } from '../../commands/doc/cli'; -import { E2eCommandModule } from '../../commands/e2e/cli'; -import { ExtractI18nCommandModule } from '../../commands/extract-i18n/cli'; -import { GenerateCommandModule } from '../../commands/generate/cli'; -import { LintCommandModule } from '../../commands/lint/cli'; -import { AwesomeCommandModule } from '../../commands/make-this-awesome/cli'; -import { NewCommandModule } from '../../commands/new/cli'; -import { RunCommandModule } from '../../commands/run/cli'; -import { ServeCommandModule } from '../../commands/serve/cli'; -import { TestCommandModule } from '../../commands/test/cli'; -import { UpdateCommandModule } from '../../commands/update/cli'; -import { VersionCommandModule } from '../../commands/version/cli'; -import { colors } from '../../utilities/color'; -import { - CommandContext, - CommandModuleError, - CommandScope, -} from '../../utilities/command-builder/command-module'; -import { jsonHelpUsage } from '../../utilities/command-builder/json-help'; -import { AngularWorkspace } from '../../utilities/config'; +import { AddCommandModule } from '../commands/add/cli'; +import { AnalyticsCommandModule } from '../commands/analytics/cli'; +import { BuildCommandModule } from '../commands/build/cli'; +import { ConfigCommandModule } from '../commands/config/cli'; +import { DeployCommandModule } from '../commands/deploy/cli'; +import { DocCommandModule } from '../commands/doc/cli'; +import { E2eCommandModule } from '../commands/e2e/cli'; +import { ExtractI18nCommandModule } from '../commands/extract-i18n/cli'; +import { GenerateCommandModule } from '../commands/generate/cli'; +import { LintCommandModule } from '../commands/lint/cli'; +import { AwesomeCommandModule } from '../commands/make-this-awesome/cli'; +import { NewCommandModule } from '../commands/new/cli'; +import { RunCommandModule } from '../commands/run/cli'; +import { ServeCommandModule } from '../commands/serve/cli'; +import { TestCommandModule } from '../commands/test/cli'; +import { UpdateCommandModule } from '../commands/update/cli'; +import { VersionCommandModule } from '../commands/version/cli'; +import { colors } from '../utilities/color'; +import { AngularWorkspace } from '../utilities/config'; +import { CommandContext, CommandModuleError, CommandScope } from './command-module'; +import { jsonHelpUsage } from './utilities/json-help'; const COMMANDS = [ VersionCommandModule, diff --git a/packages/angular/cli/utilities/command-builder/schematics-command-module.ts b/packages/angular/cli/src/command-builder/schematics-command-module.ts similarity index 97% rename from packages/angular/cli/utilities/command-builder/schematics-command-module.ts rename to packages/angular/cli/src/command-builder/schematics-command-module.ts index 51c033d226..75f99317e3 100644 --- a/packages/angular/cli/utilities/command-builder/schematics-command-module.ts +++ b/packages/angular/cli/src/command-builder/schematics-command-module.ts @@ -14,9 +14,9 @@ import { } from '@angular-devkit/schematics/tools'; import { Argv } from 'yargs'; import { SchematicEngineHost } from '../../models/schematic-engine-host'; -import { getProjectByCwd, getWorkspace } from '../config'; +import { getProjectByCwd, getWorkspace } from '../utilities/config'; import { CommandModule, CommandModuleImplementation, CommandScope } from './command-module'; -import { Option, parseJsonSchemaToOptions } from './json-schema'; +import { Option, parseJsonSchemaToOptions } from './utilities/json-schema'; const DEFAULT_SCHEMATICS_COLLECTION = '@schematics/angular'; diff --git a/packages/angular/cli/src/command-builder/utilities/architect.ts b/packages/angular/cli/src/command-builder/utilities/architect.ts new file mode 100644 index 0000000000..63e68193bf --- /dev/null +++ b/packages/angular/cli/src/command-builder/utilities/architect.ts @@ -0,0 +1,73 @@ +/** + * @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.io/license + */ + +import { Target } from '@angular-devkit/architect'; +import { WorkspaceNodeModulesArchitectHost } from '@angular-devkit/architect/node'; +import { json } from '@angular-devkit/core'; +import { existsSync } from 'fs'; +import { resolve } from 'path'; +import { getPackageManager } from '../../utilities/package-manager'; +import { CommandContext, CommandModuleError } from '../command-module'; +import { Option, parseJsonSchemaToOptions } from './json-schema'; + +export async function getArchitectTargetOptions( + context: CommandContext, + target: Target, +): Promise { + const { workspace } = context; + if (!workspace) { + return []; + } + + const architectHost = new WorkspaceNodeModulesArchitectHost(workspace, workspace.basePath); + const builderConf = await architectHost.getBuilderNameForTarget(target); + + let builderDesc; + try { + builderDesc = await architectHost.resolveBuilder(builderConf); + } catch (e) { + if (e.code === 'MODULE_NOT_FOUND') { + await warnOnMissingNodeModules(context); + throw new CommandModuleError(`Could not find the '${builderConf}' builder's node package.`); + } + + throw e; + } + + return parseJsonSchemaToOptions( + new json.schema.CoreSchemaRegistry(), + builderDesc.optionSchema as json.JsonObject, + true, + ); +} + +export async function warnOnMissingNodeModules(context: CommandContext): Promise { + const basePath = context.workspace?.basePath; + if (!basePath) { + return; + } + + // Check for a `node_modules` directory (npm, yarn non-PnP, etc.) + if (existsSync(resolve(basePath, 'node_modules'))) { + return; + } + + // Check for yarn PnP files + if ( + existsSync(resolve(basePath, '.pnp.js')) || + existsSync(resolve(basePath, '.pnp.cjs')) || + existsSync(resolve(basePath, '.pnp.mjs')) + ) { + return; + } + + const packageManager = await getPackageManager(basePath); + context.logger.warn( + `Node packages may not be installed. Try installing with '${packageManager} install'.`, + ); +} diff --git a/packages/angular/cli/utilities/command-builder/json-help.ts b/packages/angular/cli/src/command-builder/utilities/json-help.ts similarity index 98% rename from packages/angular/cli/utilities/command-builder/json-help.ts rename to packages/angular/cli/src/command-builder/utilities/json-help.ts index c943194da4..047fcdc3fa 100644 --- a/packages/angular/cli/utilities/command-builder/json-help.ts +++ b/packages/angular/cli/src/command-builder/utilities/json-help.ts @@ -7,7 +7,7 @@ */ import yargs from 'yargs'; -import { FullDescribe } from './command-module'; +import { FullDescribe } from '../command-module'; export interface JsonHelp { name: string; diff --git a/packages/angular/cli/utilities/command-builder/json-schema.ts b/packages/angular/cli/src/command-builder/utilities/json-schema.ts similarity index 100% rename from packages/angular/cli/utilities/command-builder/json-schema.ts rename to packages/angular/cli/src/command-builder/utilities/json-schema.ts diff --git a/packages/angular/cli/commands/add/add-impl.ts b/packages/angular/cli/src/commands/add/add-impl.ts similarity index 97% rename from packages/angular/cli/commands/add/add-impl.ts rename to packages/angular/cli/src/commands/add/add-impl.ts index e0097759f8..474300b630 100644 --- a/packages/angular/cli/commands/add/add-impl.ts +++ b/packages/angular/cli/src/commands/add/add-impl.ts @@ -11,11 +11,11 @@ import { NodePackageDoesNotSupportSchematics } from '@angular-devkit/schematics/ import npa from 'npm-package-arg'; import { dirname, join } from 'path'; import { intersects, prerelease, rcompare, satisfies, valid, validRange } from 'semver'; -import { PackageManager } from '../../lib/config/workspace-schema'; -import { isPackageNameSafeForAnalytics } from '../../models/analytics'; -import { SchematicCommand } from '../../models/schematic-command'; +import { PackageManager } from '../../../lib/config/workspace-schema'; +import { SchematicCommand } from '../../../models/schematic-command'; +import { isPackageNameSafeForAnalytics } from '../../analytics/analytics'; +import { Options } from '../../command-builder/command-module'; import { colors } from '../../utilities/color'; -import { Options } from '../../utilities/command-builder/command-module'; import { installPackage, installTempPackage } from '../../utilities/install-package'; import { ensureCompatibleNpm, getPackageManager } from '../../utilities/package-manager'; import { diff --git a/packages/angular/cli/commands/add/cli.ts b/packages/angular/cli/src/commands/add/cli.ts similarity index 94% rename from packages/angular/cli/commands/add/cli.ts rename to packages/angular/cli/src/commands/add/cli.ts index 7ea8824487..4099d9f305 100644 --- a/packages/angular/cli/commands/add/cli.ts +++ b/packages/angular/cli/src/commands/add/cli.ts @@ -12,11 +12,11 @@ import { CommandModuleImplementation, Options, OtherOptions, -} from '../../utilities/command-builder/command-module'; +} from '../../command-builder/command-module'; import { SchematicsCommandArgs, SchematicsCommandModule, -} from '../../utilities/command-builder/schematics-command-module'; +} from '../../command-builder/schematics-command-module'; import { AddCommandModule as OldCommandModule } from './add-impl'; export interface AddCommandArgs extends SchematicsCommandArgs { diff --git a/packages/angular/cli/commands/add/long-description.md b/packages/angular/cli/src/commands/add/long-description.md similarity index 100% rename from packages/angular/cli/commands/add/long-description.md rename to packages/angular/cli/src/commands/add/long-description.md diff --git a/packages/angular/cli/commands/analytics/cli.ts b/packages/angular/cli/src/commands/analytics/cli.ts similarity index 93% rename from packages/angular/cli/commands/analytics/cli.ts rename to packages/angular/cli/src/commands/analytics/cli.ts index b1c004277e..ea70271fd1 100644 --- a/packages/angular/cli/commands/analytics/cli.ts +++ b/packages/angular/cli/src/commands/analytics/cli.ts @@ -7,13 +7,13 @@ */ import { join } from 'path'; -import { Argv, string } from 'yargs'; +import { Argv } from 'yargs'; import { promptGlobalAnalytics, promptProjectAnalytics, setAnalyticsConfig, -} from '../../models/analytics'; -import { CommandModule, Options } from '../../utilities/command-builder/command-module'; +} from '../../analytics/analytics'; +import { CommandModule, Options } from '../../command-builder/command-module'; interface AnalyticsCommandArgs { 'setting-or-project': 'on' | 'off' | 'ci' | 'project' | 'prompt' | string; diff --git a/packages/angular/cli/commands/analytics/long-description.md b/packages/angular/cli/src/commands/analytics/long-description.md similarity index 100% rename from packages/angular/cli/commands/analytics/long-description.md rename to packages/angular/cli/src/commands/analytics/long-description.md diff --git a/packages/angular/cli/commands/build/cli.ts b/packages/angular/cli/src/commands/build/cli.ts similarity index 75% rename from packages/angular/cli/commands/build/cli.ts rename to packages/angular/cli/src/commands/build/cli.ts index 03d71dc5c7..434ff4f22f 100644 --- a/packages/angular/cli/commands/build/cli.ts +++ b/packages/angular/cli/src/commands/build/cli.ts @@ -7,8 +7,8 @@ */ import { join } from 'path'; -import { ArchitectCommandModule } from '../../utilities/command-builder/architect-command-module'; -import { CommandModuleImplementation } from '../../utilities/command-builder/command-module'; +import { ArchitectCommandModule } from '../../command-builder/architect-command-module'; +import { CommandModuleImplementation } from '../../command-builder/command-module'; export class BuildCommandModule extends ArchitectCommandModule diff --git a/packages/angular/cli/commands/build/long-description.md b/packages/angular/cli/src/commands/build/long-description.md similarity index 100% rename from packages/angular/cli/commands/build/long-description.md rename to packages/angular/cli/src/commands/build/long-description.md diff --git a/packages/angular/cli/commands/config/cli.ts b/packages/angular/cli/src/commands/config/cli.ts similarity index 96% rename from packages/angular/cli/commands/config/cli.ts rename to packages/angular/cli/src/commands/config/cli.ts index a9f9f0795d..8fbabe1ae4 100644 --- a/packages/angular/cli/commands/config/cli.ts +++ b/packages/angular/cli/src/commands/config/cli.ts @@ -12,7 +12,7 @@ import { CommandModule, CommandModuleImplementation, Options, -} from '../../utilities/command-builder/command-module'; +} from '../../command-builder/command-module'; import { ConfigCommand } from './config-impl'; export interface ConfigCommandArgs { diff --git a/packages/angular/cli/commands/config/config-impl.ts b/packages/angular/cli/src/commands/config/config-impl.ts similarity index 97% rename from packages/angular/cli/commands/config/config-impl.ts rename to packages/angular/cli/src/commands/config/config-impl.ts index a032a8135f..7688609e83 100644 --- a/packages/angular/cli/commands/config/config-impl.ts +++ b/packages/angular/cli/src/commands/config/config-impl.ts @@ -8,8 +8,8 @@ import { JsonValue } from '@angular-devkit/core'; import { v4 as uuidV4 } from 'uuid'; -import { Command } from '../../models/command'; -import { Options } from '../../utilities/command-builder/command-module'; +import { Command } from '../../../models/command'; +import { Options } from '../../command-builder/command-module'; import { getWorkspaceRaw, validateWorkspace } from '../../utilities/config'; import { JSONFile, parseJson } from '../../utilities/json-file'; import { ConfigCommandArgs } from './cli'; diff --git a/packages/angular/cli/commands/config/long-description.md b/packages/angular/cli/src/commands/config/long-description.md similarity index 82% rename from packages/angular/cli/commands/config/long-description.md rename to packages/angular/cli/src/commands/config/long-description.md index 7f44f63b3b..2ed7e8c7a6 100644 --- a/packages/angular/cli/commands/config/long-description.md +++ b/packages/angular/cli/src/commands/config/long-description.md @@ -9,5 +9,3 @@ except that in the configuration file, all names must use camelCase, while on the command line options can be given in either camelCase or dash-case. For further details, see [Workspace Configuration](guide/workspace-config). - -For configuration of CLI usage analytics, see [Gathering an Viewing CLI Usage Analytics](./usage-analytics-gathering). diff --git a/packages/angular/cli/commands/deploy/cli.ts b/packages/angular/cli/src/commands/deploy/cli.ts similarity index 83% rename from packages/angular/cli/commands/deploy/cli.ts rename to packages/angular/cli/src/commands/deploy/cli.ts index 1ee748b340..18f5aaadd8 100644 --- a/packages/angular/cli/commands/deploy/cli.ts +++ b/packages/angular/cli/src/commands/deploy/cli.ts @@ -8,8 +8,8 @@ import { tags } from '@angular-devkit/core'; import { join } from 'path'; -import { ArchitectCommandModule } from '../../utilities/command-builder/architect-command-module'; -import { CommandModuleImplementation } from '../../utilities/command-builder/command-module'; +import { ArchitectCommandModule } from '../../command-builder/architect-command-module'; +import { CommandModuleImplementation } from '../../command-builder/command-module'; export class DeployCommandModule extends ArchitectCommandModule diff --git a/packages/angular/cli/commands/deploy/long-description.md b/packages/angular/cli/src/commands/deploy/long-description.md similarity index 100% rename from packages/angular/cli/commands/deploy/long-description.md rename to packages/angular/cli/src/commands/deploy/long-description.md diff --git a/packages/angular/cli/commands/doc/cli.ts b/packages/angular/cli/src/commands/doc/cli.ts similarity index 97% rename from packages/angular/cli/commands/doc/cli.ts rename to packages/angular/cli/src/commands/doc/cli.ts index 70bb477734..fd2423e360 100644 --- a/packages/angular/cli/commands/doc/cli.ts +++ b/packages/angular/cli/src/commands/doc/cli.ts @@ -12,7 +12,7 @@ import { CommandModule, CommandModuleImplementation, Options, -} from '../../utilities/command-builder/command-module'; +} from '../../command-builder/command-module'; interface DocCommandArgs { keyword: string; diff --git a/packages/angular/cli/commands/e2e/cli.ts b/packages/angular/cli/src/commands/e2e/cli.ts similarity index 83% rename from packages/angular/cli/commands/e2e/cli.ts rename to packages/angular/cli/src/commands/e2e/cli.ts index 4f833c8ef2..bb59ca78fc 100644 --- a/packages/angular/cli/commands/e2e/cli.ts +++ b/packages/angular/cli/src/commands/e2e/cli.ts @@ -7,8 +7,8 @@ */ import { tags } from '@angular-devkit/core'; -import { ArchitectCommandModule } from '../../utilities/command-builder/architect-command-module'; -import { CommandModuleImplementation } from '../../utilities/command-builder/command-module'; +import { ArchitectCommandModule } from '../../command-builder/architect-command-module'; +import { CommandModuleImplementation } from '../../command-builder/command-module'; export class E2eCommandModule extends ArchitectCommandModule diff --git a/packages/angular/cli/commands/extract-i18n/cli.ts b/packages/angular/cli/src/commands/extract-i18n/cli.ts similarity index 71% rename from packages/angular/cli/commands/extract-i18n/cli.ts rename to packages/angular/cli/src/commands/extract-i18n/cli.ts index 4812a2bda5..5283204f4e 100644 --- a/packages/angular/cli/commands/extract-i18n/cli.ts +++ b/packages/angular/cli/src/commands/extract-i18n/cli.ts @@ -6,8 +6,8 @@ * found in the LICENSE file at https://angular.io/license */ -import { ArchitectCommandModule } from '../../utilities/command-builder/architect-command-module'; -import { CommandModuleImplementation } from '../../utilities/command-builder/command-module'; +import { ArchitectCommandModule } from '../../command-builder/architect-command-module'; +import { CommandModuleImplementation } from '../../command-builder/command-module'; export class ExtractI18nCommandModule extends ArchitectCommandModule diff --git a/packages/angular/cli/commands/generate/cli.ts b/packages/angular/cli/src/commands/generate/cli.ts similarity index 96% rename from packages/angular/cli/commands/generate/cli.ts rename to packages/angular/cli/src/commands/generate/cli.ts index 8311d4d2ad..923c228d7e 100644 --- a/packages/angular/cli/commands/generate/cli.ts +++ b/packages/angular/cli/src/commands/generate/cli.ts @@ -12,12 +12,12 @@ import { CommandModuleImplementation, Options, OtherOptions, -} from '../../utilities/command-builder/command-module'; -import { Option } from '../../utilities/command-builder/json-schema'; +} from '../../command-builder/command-module'; import { SchematicsCommandArgs, SchematicsCommandModule, -} from '../../utilities/command-builder/schematics-command-module'; +} from '../../command-builder/schematics-command-module'; +import { Option } from '../../command-builder/utilities/json-schema'; import { GenerateCommand } from './generate-impl'; export interface GenerateCommandArgs extends SchematicsCommandArgs { diff --git a/packages/angular/cli/commands/generate/generate-impl.ts b/packages/angular/cli/src/commands/generate/generate-impl.ts similarity index 93% rename from packages/angular/cli/commands/generate/generate-impl.ts rename to packages/angular/cli/src/commands/generate/generate-impl.ts index a0aec5ca48..102d67c248 100644 --- a/packages/angular/cli/commands/generate/generate-impl.ts +++ b/packages/angular/cli/src/commands/generate/generate-impl.ts @@ -6,8 +6,8 @@ * found in the LICENSE file at https://angular.io/license */ -import { SchematicCommand } from '../../models/schematic-command'; -import { Options, OtherOptions } from '../../utilities/command-builder/command-module'; +import { SchematicCommand } from '../../../models/schematic-command'; +import { Options, OtherOptions } from '../../command-builder/command-module'; import { GenerateCommandArgs } from './cli'; type GenerateCommandOptions = Options; diff --git a/packages/angular/cli/commands/lint/cli.ts b/packages/angular/cli/src/commands/lint/cli.ts similarity index 81% rename from packages/angular/cli/commands/lint/cli.ts rename to packages/angular/cli/src/commands/lint/cli.ts index 1715b5a7a0..bd661e7d16 100644 --- a/packages/angular/cli/commands/lint/cli.ts +++ b/packages/angular/cli/src/commands/lint/cli.ts @@ -8,8 +8,8 @@ import { tags } from '@angular-devkit/core'; import { join } from 'path'; -import { ArchitectCommandModule } from '../../utilities/command-builder/architect-command-module'; -import { CommandModuleImplementation } from '../../utilities/command-builder/command-module'; +import { ArchitectCommandModule } from '../../command-builder/architect-command-module'; +import { CommandModuleImplementation } from '../../command-builder/command-module'; export class LintCommandModule extends ArchitectCommandModule diff --git a/packages/angular/cli/commands/lint/long-description.md b/packages/angular/cli/src/commands/lint/long-description.md similarity index 100% rename from packages/angular/cli/commands/lint/long-description.md rename to packages/angular/cli/src/commands/lint/long-description.md diff --git a/packages/angular/cli/commands/make-this-awesome/cli.ts b/packages/angular/cli/src/commands/make-this-awesome/cli.ts similarity index 90% rename from packages/angular/cli/commands/make-this-awesome/cli.ts rename to packages/angular/cli/src/commands/make-this-awesome/cli.ts index 9705533289..45b77f36da 100644 --- a/packages/angular/cli/commands/make-this-awesome/cli.ts +++ b/packages/angular/cli/src/commands/make-this-awesome/cli.ts @@ -7,11 +7,8 @@ */ import { Argv } from 'yargs'; +import { CommandModule, CommandModuleImplementation } from '../../command-builder/command-module'; import { colors } from '../../utilities/color'; -import { - CommandModule, - CommandModuleImplementation, -} from '../../utilities/command-builder/command-module'; export class AwesomeCommandModule extends CommandModule implements CommandModuleImplementation { command = 'make-this-awesome'; diff --git a/packages/angular/cli/commands/new/cli.ts b/packages/angular/cli/src/commands/new/cli.ts similarity index 91% rename from packages/angular/cli/commands/new/cli.ts rename to packages/angular/cli/src/commands/new/cli.ts index 38174ff81e..68dc79e12a 100644 --- a/packages/angular/cli/commands/new/cli.ts +++ b/packages/angular/cli/src/commands/new/cli.ts @@ -12,11 +12,11 @@ import { CommandScope, Options, OtherOptions, -} from '../../utilities/command-builder/command-module'; +} from '../../command-builder/command-module'; import { SchematicsCommandArgs, SchematicsCommandModule, -} from '../../utilities/command-builder/schematics-command-module'; +} from '../../command-builder/schematics-command-module'; import { NewCommand } from './new-impl'; export interface NewCommandArgs extends SchematicsCommandArgs { diff --git a/packages/angular/cli/commands/new/new-impl.ts b/packages/angular/cli/src/commands/new/new-impl.ts similarity index 88% rename from packages/angular/cli/commands/new/new-impl.ts rename to packages/angular/cli/src/commands/new/new-impl.ts index 964ba7244d..b8629d39b4 100644 --- a/packages/angular/cli/commands/new/new-impl.ts +++ b/packages/angular/cli/src/commands/new/new-impl.ts @@ -6,8 +6,8 @@ * found in the LICENSE file at https://angular.io/license */ -import { SchematicCommand } from '../../models/schematic-command'; -import { Options, OtherOptions } from '../../utilities/command-builder/command-module'; +import { SchematicCommand } from '../../../models/schematic-command'; +import { Options, OtherOptions } from '../../command-builder/command-module'; import { VERSION } from '../../utilities/version'; import { NewCommandArgs } from './cli'; diff --git a/packages/angular/cli/commands/run/cli.ts b/packages/angular/cli/src/commands/run/cli.ts similarity index 93% rename from packages/angular/cli/commands/run/cli.ts rename to packages/angular/cli/src/commands/run/cli.ts index 7674f1f656..9ce685705e 100644 --- a/packages/angular/cli/commands/run/cli.ts +++ b/packages/angular/cli/src/commands/run/cli.ts @@ -11,8 +11,7 @@ import { WorkspaceNodeModulesArchitectHost } from '@angular-devkit/architect/nod import { json } from '@angular-devkit/core'; import { join } from 'path'; import { Argv } from 'yargs'; -import { isPackageNameSafeForAnalytics } from '../../models/analytics'; -import { getArchitectTargetOptions } from '../../utilities/command-builder/architect-command-module'; +import { isPackageNameSafeForAnalytics } from '../../analytics/analytics'; import { CommandModule, CommandModuleError, @@ -20,7 +19,8 @@ import { CommandScope, Options, OtherOptions, -} from '../../utilities/command-builder/command-module'; +} from '../../command-builder/command-module'; +import { getArchitectTargetOptions } from '../../command-builder/utilities/architect'; export interface RunCommandArgs { target: string; diff --git a/packages/angular/cli/commands/run/long-description.md b/packages/angular/cli/src/commands/run/long-description.md similarity index 100% rename from packages/angular/cli/commands/run/long-description.md rename to packages/angular/cli/src/commands/run/long-description.md diff --git a/packages/angular/cli/commands/serve/cli.ts b/packages/angular/cli/src/commands/serve/cli.ts similarity index 72% rename from packages/angular/cli/commands/serve/cli.ts rename to packages/angular/cli/src/commands/serve/cli.ts index 6231a90609..537345cc56 100644 --- a/packages/angular/cli/commands/serve/cli.ts +++ b/packages/angular/cli/src/commands/serve/cli.ts @@ -6,8 +6,8 @@ * found in the LICENSE file at https://angular.io/license */ -import { ArchitectCommandModule } from '../../utilities/command-builder/architect-command-module'; -import { CommandModuleImplementation } from '../../utilities/command-builder/command-module'; +import { ArchitectCommandModule } from '../../command-builder/architect-command-module'; +import { CommandModuleImplementation } from '../../command-builder/command-module'; export class ServeCommandModule extends ArchitectCommandModule diff --git a/packages/angular/cli/commands/test/cli.ts b/packages/angular/cli/src/commands/test/cli.ts similarity index 73% rename from packages/angular/cli/commands/test/cli.ts rename to packages/angular/cli/src/commands/test/cli.ts index 4c7dd6cbe2..fd650fee01 100644 --- a/packages/angular/cli/commands/test/cli.ts +++ b/packages/angular/cli/src/commands/test/cli.ts @@ -7,8 +7,8 @@ */ import { join } from 'path'; -import { ArchitectCommandModule } from '../../utilities/command-builder/architect-command-module'; -import { CommandModuleImplementation } from '../../utilities/command-builder/command-module'; +import { ArchitectCommandModule } from '../../command-builder/architect-command-module'; +import { CommandModuleImplementation } from '../../command-builder/command-module'; export class TestCommandModule extends ArchitectCommandModule diff --git a/packages/angular/cli/commands/test/long-description.md b/packages/angular/cli/src/commands/test/long-description.md similarity index 100% rename from packages/angular/cli/commands/test/long-description.md rename to packages/angular/cli/src/commands/test/long-description.md diff --git a/packages/angular/cli/commands/update/cli.ts b/packages/angular/cli/src/commands/update/cli.ts similarity index 98% rename from packages/angular/cli/commands/update/cli.ts rename to packages/angular/cli/src/commands/update/cli.ts index 1d611ba910..ee57fce365 100644 --- a/packages/angular/cli/commands/update/cli.ts +++ b/packages/angular/cli/src/commands/update/cli.ts @@ -12,7 +12,7 @@ import { CommandScope, Options, OtherOptions, -} from '../../utilities/command-builder/command-module'; +} from '../../command-builder/command-module'; import { UpdateCommand } from './update-impl'; export interface UpdateCommandArgs { diff --git a/packages/angular/cli/commands/update/long-description.md b/packages/angular/cli/src/commands/update/long-description.md similarity index 100% rename from packages/angular/cli/commands/update/long-description.md rename to packages/angular/cli/src/commands/update/long-description.md diff --git a/packages/angular/cli/src/commands/update/schematic/index.ts b/packages/angular/cli/src/commands/update/schematic/index.ts index 76f3e0a09f..d61dd591e8 100644 --- a/packages/angular/cli/src/commands/update/schematic/index.ts +++ b/packages/angular/cli/src/commands/update/schematic/index.ts @@ -10,11 +10,8 @@ import { logging, tags } from '@angular-devkit/core'; import { Rule, SchematicContext, SchematicsException, Tree } from '@angular-devkit/schematics'; import * as npa from 'npm-package-arg'; import * as semver from 'semver'; -import { Dependency, JsonSchemaForNpmPackageJsonFiles } from '../../../../utilities/package-json'; -import { - NpmRepositoryPackageJson, - getNpmPackageJson, -} from '../../../../utilities/package-metadata'; +import { Dependency, JsonSchemaForNpmPackageJsonFiles } from '../../../utilities/package-json'; +import { NpmRepositoryPackageJson, getNpmPackageJson } from '../../../utilities/package-metadata'; import { Schema as UpdateSchema } from './schema'; type VersionRange = string & { __VERSION_RANGE: void }; diff --git a/packages/angular/cli/commands/update/update-impl.ts b/packages/angular/cli/src/commands/update/update-impl.ts similarity index 98% rename from packages/angular/cli/commands/update/update-impl.ts rename to packages/angular/cli/src/commands/update/update-impl.ts index b8b5a52101..25cf5da8f8 100644 --- a/packages/angular/cli/commands/update/update-impl.ts +++ b/packages/angular/cli/src/commands/update/update-impl.ts @@ -14,11 +14,11 @@ import npa from 'npm-package-arg'; import pickManifest from 'npm-pick-manifest'; import * as path from 'path'; import * as semver from 'semver'; -import { PackageManager } from '../../lib/config/workspace-schema'; -import { Command } from '../../models/command'; -import { SchematicEngineHost } from '../../models/schematic-engine-host'; +import { PackageManager } from '../../../lib/config/workspace-schema'; +import { Command } from '../../../models/command'; +import { SchematicEngineHost } from '../../../models/schematic-engine-host'; +import { Options } from '../../command-builder/command-module'; import { colors } from '../../utilities/color'; -import { Options } from '../../utilities/command-builder/command-module'; import { installAllPackages, runTempPackageBin } from '../../utilities/install-package'; import { writeErrorToLogFile } from '../../utilities/log-file'; import { ensureCompatibleNpm, getPackageManager } from '../../utilities/package-manager'; @@ -37,10 +37,7 @@ import { import { VERSION } from '../../utilities/version'; import { UpdateCommandArgs } from './cli'; -const UPDATE_SCHEMATIC_COLLECTION = path.join( - __dirname, - '../../src/commands/update/schematic/collection.json', -); +const UPDATE_SCHEMATIC_COLLECTION = path.join(__dirname, 'schematic/collection.json'); type UpdateCommandOptions = Options; diff --git a/packages/angular/cli/commands/version/cli.ts b/packages/angular/cli/src/commands/version/cli.ts similarity index 95% rename from packages/angular/cli/commands/version/cli.ts rename to packages/angular/cli/src/commands/version/cli.ts index e86be71668..9ed6f28874 100644 --- a/packages/angular/cli/commands/version/cli.ts +++ b/packages/angular/cli/src/commands/version/cli.ts @@ -8,12 +8,10 @@ import { execSync } from 'child_process'; import nodeModule from 'module'; +import { resolve } from 'path'; import { Argv } from 'yargs'; +import { CommandModule, CommandModuleImplementation } from '../../command-builder/command-module'; import { colors } from '../../utilities/color'; -import { - CommandModule, - CommandModuleImplementation, -} from '../../utilities/command-builder/command-module'; import { getPackageManager } from '../../utilities/package-manager'; interface PartialPackageInfo { @@ -53,11 +51,11 @@ export class VersionCommandModule extends CommandModule implements CommandModule async run(): Promise { const logger = this.context.logger; - const localRequire = nodeModule.createRequire(__filename); + const localRequire = nodeModule.createRequire(resolve(__filename, '../../../')); // Trailing slash is used to allow the path to be treated as a directory const workspaceRequire = nodeModule.createRequire(this.context.root + '/'); - const cliPackage: PartialPackageInfo = localRequire('../../package.json'); + const cliPackage: PartialPackageInfo = localRequire('./package.json'); let workspacePackage: PartialPackageInfo | undefined; try { workspacePackage = workspaceRequire('./package.json'); diff --git a/packages/angular/cli/src/typings.ts b/packages/angular/cli/src/typings.ts index 169bbb457e..63fc2bf0ce 100644 --- a/packages/angular/cli/src/typings.ts +++ b/packages/angular/cli/src/typings.ts @@ -18,9 +18,9 @@ declare module 'ini' { declare module 'npm-pick-manifest' { function pickManifest( - metadata: import('../utilities/package-metadata').PackageMetadata, + metadata: import('./utilities/package-metadata').PackageMetadata, selector: string, - ): import('../utilities/package-metadata').PackageManifest; + ): import('./utilities/package-metadata').PackageManifest; export = pickManifest; } @@ -33,5 +33,5 @@ declare module 'pacote' { export function packument( specifier: string, options: Record, - ): Promise; + ): Promise; } diff --git a/packages/angular/cli/utilities/color.ts b/packages/angular/cli/src/utilities/color.ts similarity index 100% rename from packages/angular/cli/utilities/color.ts rename to packages/angular/cli/src/utilities/color.ts diff --git a/packages/angular/cli/utilities/config.ts b/packages/angular/cli/src/utilities/config.ts similarity index 97% rename from packages/angular/cli/utilities/config.ts rename to packages/angular/cli/src/utilities/config.ts index 8fd804eda3..8549e8e66f 100644 --- a/packages/angular/cli/utilities/config.ts +++ b/packages/angular/cli/src/utilities/config.ts @@ -10,7 +10,7 @@ import { json, workspaces } from '@angular-devkit/core'; import { existsSync, readFileSync, statSync, writeFileSync } from 'fs'; import * as os from 'os'; import * as path from 'path'; -import { PackageManager } from '../lib/config/workspace-schema'; +import { PackageManager } from '../../lib/config/workspace-schema'; import { findUp } from './find-up'; import { JSONFile, readAndParseJson } from './json-file'; @@ -43,11 +43,7 @@ function createWorkspaceHost(): workspaces.WorkspaceHost { }; } -function getSchemaLocation(): string { - return path.join(__dirname, '../lib/config/schema.json'); -} - -export const workspaceSchemaPath = getSchemaLocation(); +export const workspaceSchemaPath = path.join(__dirname, '../../lib/config/schema.json'); const configNames = ['angular.json', '.angular.json']; const globalFileName = '.angular-config.json'; @@ -214,9 +210,7 @@ export function getWorkspaceRaw( } export async function validateWorkspace(data: json.JsonObject): Promise { - const schema = readAndParseJson( - path.join(__dirname, '../lib/config/schema.json'), - ) as json.schema.JsonSchema; + const schema = readAndParseJson(workspaceSchemaPath) as json.schema.JsonSchema; const { formats } = await import('@angular-devkit/schematics'); const registry = new json.schema.CoreSchemaRegistry(formats.standardFormats); const validator = await registry.compile(schema).toPromise(); diff --git a/packages/angular/cli/utilities/find-up.ts b/packages/angular/cli/src/utilities/find-up.ts similarity index 100% rename from packages/angular/cli/utilities/find-up.ts rename to packages/angular/cli/src/utilities/find-up.ts diff --git a/packages/angular/cli/utilities/install-package.ts b/packages/angular/cli/src/utilities/install-package.ts similarity index 98% rename from packages/angular/cli/utilities/install-package.ts rename to packages/angular/cli/src/utilities/install-package.ts index 8142135915..9205af7a39 100644 --- a/packages/angular/cli/utilities/install-package.ts +++ b/packages/angular/cli/src/utilities/install-package.ts @@ -10,8 +10,8 @@ import { spawn, spawnSync } from 'child_process'; import { existsSync, mkdtempSync, readFileSync, realpathSync, rmdirSync, writeFileSync } from 'fs'; import { tmpdir } from 'os'; import { join, resolve } from 'path'; -import { PackageManager } from '../lib/config/workspace-schema'; -import { NgAddSaveDepedency } from '../utilities/package-metadata'; +import { PackageManager } from '../../lib/config/workspace-schema'; +import { NgAddSaveDepedency } from './package-metadata'; import { Spinner } from './spinner'; interface PackageManagerOptions { diff --git a/packages/angular/cli/utilities/json-file.ts b/packages/angular/cli/src/utilities/json-file.ts similarity index 100% rename from packages/angular/cli/utilities/json-file.ts rename to packages/angular/cli/src/utilities/json-file.ts diff --git a/packages/angular/cli/utilities/log-file.ts b/packages/angular/cli/src/utilities/log-file.ts similarity index 100% rename from packages/angular/cli/utilities/log-file.ts rename to packages/angular/cli/src/utilities/log-file.ts diff --git a/packages/angular/cli/utilities/package-json.ts b/packages/angular/cli/src/utilities/package-json.ts similarity index 100% rename from packages/angular/cli/utilities/package-json.ts rename to packages/angular/cli/src/utilities/package-json.ts diff --git a/packages/angular/cli/utilities/package-manager.ts b/packages/angular/cli/src/utilities/package-manager.ts similarity index 97% rename from packages/angular/cli/utilities/package-manager.ts rename to packages/angular/cli/src/utilities/package-manager.ts index 82acba8ab9..14721e7e69 100644 --- a/packages/angular/cli/utilities/package-manager.ts +++ b/packages/angular/cli/src/utilities/package-manager.ts @@ -11,7 +11,7 @@ import { constants, promises as fs } from 'fs'; import { join } from 'path'; import { satisfies, valid } from 'semver'; import { promisify } from 'util'; -import { PackageManager } from '../lib/config/workspace-schema'; +import { PackageManager } from '../../lib/config/workspace-schema'; import { getConfiguredPackageManager } from './config'; const exec = promisify(execCb); diff --git a/packages/angular/cli/utilities/package-metadata.ts b/packages/angular/cli/src/utilities/package-metadata.ts similarity index 100% rename from packages/angular/cli/utilities/package-metadata.ts rename to packages/angular/cli/src/utilities/package-metadata.ts diff --git a/packages/angular/cli/utilities/package-tree.ts b/packages/angular/cli/src/utilities/package-tree.ts similarity index 100% rename from packages/angular/cli/utilities/package-tree.ts rename to packages/angular/cli/src/utilities/package-tree.ts diff --git a/packages/angular/cli/utilities/project.ts b/packages/angular/cli/src/utilities/project.ts similarity index 100% rename from packages/angular/cli/utilities/project.ts rename to packages/angular/cli/src/utilities/project.ts diff --git a/packages/angular/cli/utilities/prompt.ts b/packages/angular/cli/src/utilities/prompt.ts similarity index 100% rename from packages/angular/cli/utilities/prompt.ts rename to packages/angular/cli/src/utilities/prompt.ts diff --git a/packages/angular/cli/utilities/spinner.ts b/packages/angular/cli/src/utilities/spinner.ts similarity index 100% rename from packages/angular/cli/utilities/spinner.ts rename to packages/angular/cli/src/utilities/spinner.ts diff --git a/packages/angular/cli/utilities/tty.ts b/packages/angular/cli/src/utilities/tty.ts similarity index 100% rename from packages/angular/cli/utilities/tty.ts rename to packages/angular/cli/src/utilities/tty.ts diff --git a/packages/angular/cli/utilities/version.ts b/packages/angular/cli/src/utilities/version.ts similarity index 88% rename from packages/angular/cli/utilities/version.ts rename to packages/angular/cli/src/utilities/version.ts index 802e7fbc2b..2c9db37d69 100644 --- a/packages/angular/cli/utilities/version.ts +++ b/packages/angular/cli/src/utilities/version.ts @@ -27,6 +27,8 @@ class Version { // export const VERSION = new Version('0.0.0-PLACEHOLDER'); export const VERSION = new Version( ( - JSON.parse(readFileSync(resolve(__dirname, '../package.json'), 'utf-8')) as { version: string } + JSON.parse(readFileSync(resolve(__dirname, '../../package.json'), 'utf-8')) as { + version: string; + } ).version, ); diff --git a/scripts/json-help.ts b/scripts/json-help.ts index 1cab27bf72..a58c656851 100644 --- a/scripts/json-help.ts +++ b/scripts/json-help.ts @@ -10,7 +10,7 @@ import { logging } from '@angular-devkit/core'; import { spawn } from 'child_process'; import { promises as fs } from 'fs'; import * as os from 'os'; -import { JsonHelp } from 'packages/angular/cli/utilities/command-builder/json-help'; +import { JsonHelp } from 'packages/angular/cli/src/command-builder/utilities/json-help'; import * as path from 'path'; import { packages } from '../lib/packages'; import create from './create';