@nx/angular
Version:
54 lines (53 loc) • 3.19 kB
JavaScript
;
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) {
const dependencies = {};
const devDependencies = {};
const pkgVersions = (0, version_utils_1.versions)(tree);
const installedAngularCoreVersion = (0, version_utils_1.getInstalledPackageVersion)(tree, '@angular/core');
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, version_utils_1.getInstalledPackageVersion)(tree, 'rxjs') ?? pkgVersions.rxjsVersion;
const tsLibVersion = (0, version_utils_1.getInstalledPackageVersion)(tree, 'tslib') ?? pkgVersions.tsLibVersion;
const zoneJsVersion = (0, version_utils_1.getInstalledPackageVersion)(tree, 'zone.js') ?? pkgVersions.zoneJsVersion;
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;
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);
}