UNPKG

@nx/angular

Version:

The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: - Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Playwright and Cypre

60 lines (59 loc) 3.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ensureAngularDependencies = ensureAngularDependencies; const devkit_1 = require("@nx/devkit"); const version_utils_1 = require("./version-utils"); function ensureAngularDependencies(tree, zoneless) { const dependencies = {}; const devDependencies = {}; const pkgVersions = (0, version_utils_1.versions)(tree); const packageJson = (0, devkit_1.readJson)(tree, 'package.json'); const installedAngularCoreVersion = (0, devkit_1.getDependencyVersionFromPackageJson)(tree, '@angular/core', packageJson); if (!installedAngularCoreVersion) { /** * If @angular/core is already installed, we assume the workspace was already * initialized with Angular dependencies and we don't want to re-install them. * This is to avoid re-installing Angular runtime dependencies that the user * might have removed. */ const angularVersion = pkgVersions.angularVersion; const rxjsVersion = (0, devkit_1.getDependencyVersionFromPackageJson)(tree, 'rxjs', packageJson) ?? pkgVersions.rxjsVersion; const tsLibVersion = (0, devkit_1.getDependencyVersionFromPackageJson)(tree, 'tslib', packageJson) ?? pkgVersions.tsLibVersion; dependencies['@angular/common'] = angularVersion; dependencies['@angular/compiler'] = angularVersion; dependencies['@angular/core'] = angularVersion; dependencies['@angular/forms'] = angularVersion; dependencies['@angular/platform-browser'] = angularVersion; dependencies['@angular/router'] = angularVersion; dependencies.rxjs = rxjsVersion; dependencies.tslib = tsLibVersion; if (!zoneless) { const zoneJsVersion = (0, devkit_1.getDependencyVersionFromPackageJson)(tree, 'zone.js', packageJson) ?? pkgVersions.zoneJsVersion; dependencies['zone.js'] = zoneJsVersion; } } const installedAngularDevkitVersion = (0, version_utils_1.getInstalledAngularDevkitVersion)(tree); if (!installedAngularDevkitVersion) { /** * If `@angular-devkit/build-angular` is already installed, we assume the workspace * was already initialized with Angular and we don't want to re-install the tooling. * This is to avoid re-installing Angular tooling that the user might have removed. */ devDependencies['@angular/cli'] = pkgVersions.angularDevkitVersion; devDependencies['@angular/compiler-cli'] = pkgVersions.angularVersion; devDependencies['@angular/language-service'] = pkgVersions.angularVersion; } // Ensure the `@nx/angular` peer dependencies are always installed. const angularDevkitVersion = installedAngularDevkitVersion ?? pkgVersions.angularDevkitVersion; devDependencies['@angular-devkit/schematics'] = angularDevkitVersion; devDependencies['@schematics/angular'] = angularDevkitVersion; const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree); if (angularMajorVersion < 20) { devDependencies['@angular/build'] = angularDevkitVersion; devDependencies['@angular-devkit/build-angular'] = angularDevkitVersion; } return (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies, devDependencies, undefined, true); }