diff --git a/docs/generated/packages/angular.json b/docs/generated/packages/angular.json index a806acab003d9..a3fb7510869b8 100644 --- a/docs/generated/packages/angular.json +++ b/docs/generated/packages/angular.json @@ -155,6 +155,11 @@ "default": false, "description": "Do not add dependencies to `package.json`." }, + "skipPostInstall": { + "type": "boolean", + "default": false, + "description": "Do not add or append `ngcc` to the `postinstall` script in `package.json`." + }, "unitTestRunner": { "type": "string", "enum": ["karma", "jest", "none"], @@ -636,6 +641,11 @@ "type": "boolean", "default": false, "description": "Do not add dependencies to `package.json`." + }, + "skipPostInstall": { + "type": "boolean", + "default": false, + "description": "Do not add or append `ngcc` to the `postinstall` script in `package.json`." } }, "additionalProperties": false, @@ -769,6 +779,11 @@ "default": false, "description": "Do not add dependencies to `package.json`." }, + "skipPostInstall": { + "type": "boolean", + "default": false, + "description": "Do not add or append `ngcc` to the `postinstall` script in `package.json`." + }, "skipTsConfig": { "type": "boolean", "default": false, @@ -1217,6 +1232,11 @@ "default": false, "description": "Do not add dependencies to `package.json`." }, + "skipPostInstall": { + "type": "boolean", + "default": false, + "description": "Do not add or append `ngcc` to the `postinstall` script in `package.json`." + }, "unitTestRunner": { "type": "string", "enum": ["karma", "jest", "none"], @@ -1341,6 +1361,11 @@ "type": "boolean", "default": false, "description": "Do not add dependencies to `package.json`. NOTE: only used if running the generator in an Nx workspace." + }, + "skipPostInstall": { + "type": "boolean", + "default": false, + "description": "Do not add or append `ngcc` to the `postinstall` script in `package.json`. NOTE: only used if running the generator in an Nx workspace." } }, "additionalProperties": false, diff --git a/packages/angular/src/generators/application/schema.d.ts b/packages/angular/src/generators/application/schema.d.ts index 92c26efdfdafd..e52279ebd663c 100644 --- a/packages/angular/src/generators/application/schema.d.ts +++ b/packages/angular/src/generators/application/schema.d.ts @@ -30,5 +30,6 @@ export interface Schema { host?: string; setParserOptionsProject?: boolean; skipPackageJson?: boolean; + skipPostInstall?: boolean; federationType?: 'static' | 'dynamic'; } diff --git a/packages/angular/src/generators/application/schema.json b/packages/angular/src/generators/application/schema.json index 7cb80b17820b0..b06c8bc77dbce 100644 --- a/packages/angular/src/generators/application/schema.json +++ b/packages/angular/src/generators/application/schema.json @@ -93,6 +93,11 @@ "default": false, "description": "Do not add dependencies to `package.json`." }, + "skipPostInstall": { + "type": "boolean", + "default": false, + "description": "Do not add or append `ngcc` to the `postinstall` script in `package.json`." + }, "unitTestRunner": { "type": "string", "enum": ["karma", "jest", "none"], diff --git a/packages/angular/src/generators/host/schema.d.ts b/packages/angular/src/generators/host/schema.d.ts index 79ae9d69993ed..a4932ac3a9201 100644 --- a/packages/angular/src/generators/host/schema.d.ts +++ b/packages/angular/src/generators/host/schema.d.ts @@ -4,6 +4,7 @@ export interface Schema { dynamic?: boolean; setParserOptionsProject?: boolean; skipPackageJson?: boolean; + skipPostInstall?: boolean; addTailwind?: boolean; prefix?: string; style?: Styles; diff --git a/packages/angular/src/generators/host/schema.json b/packages/angular/src/generators/host/schema.json index 5234cdf27894e..e2a6c6fdf35c1 100644 --- a/packages/angular/src/generators/host/schema.json +++ b/packages/angular/src/generators/host/schema.json @@ -95,6 +95,11 @@ "default": false, "description": "Do not add dependencies to `package.json`." }, + "skipPostInstall": { + "type": "boolean", + "default": false, + "description": "Do not add or append `ngcc` to the `postinstall` script in `package.json`." + }, "unitTestRunner": { "type": "string", "enum": ["karma", "jest", "none"], diff --git a/packages/angular/src/generators/init/init.spec.ts b/packages/angular/src/generators/init/init.spec.ts index cdaefe34ee29d..4eb60e6ca0a9f 100644 --- a/packages/angular/src/generators/init/init.spec.ts +++ b/packages/angular/src/generators/init/init.spec.ts @@ -42,7 +42,7 @@ describe('init', () => { expect(devDependencies['codelyzer']).toBeUndefined(); }); - it('should add a postinstall script for ngcc', async () => { + it('should add a postinstall script for ngcc by default', async () => { // ACT await init(host, { unitTestRunner: UnitTestRunner.Karma, @@ -58,6 +58,21 @@ describe('init', () => { ); }); + it('should not add a postinstall script for ngcc if skipPostInstall=true', async () => { + // ACT + await init(host, { + unitTestRunner: UnitTestRunner.Karma, + linter: Linter.EsLint, + skipFormat: false, + skipPostInstall: true, + }); + + const packageJson = readJson(host, 'package.json'); + + // ASSERT + expect(packageJson?.scripts?.postinstall).toBeFalsy(); + }); + describe('--unit-test-runner', () => { describe('karma', () => { it('should add karma dependencies', async () => { diff --git a/packages/angular/src/generators/init/init.ts b/packages/angular/src/generators/init/init.ts index 765ab78e52e04..2579309ac5949 100755 --- a/packages/angular/src/generators/init/init.ts +++ b/packages/angular/src/generators/init/init.ts @@ -27,7 +27,10 @@ export async function angularInitGenerator( ): Promise { const options = normalizeOptions(rawOptions); setDefaults(host, options); - addPostInstall(host); + + if (!options.skipPostInstall) { + addPostInstall(host); + } const depsTask = !options.skipPackageJson ? updateDependencies(host) @@ -49,6 +52,7 @@ function normalizeOptions(options: Schema): Required { linter: options.linter ?? Linter.EsLint, skipFormat: options.skipFormat ?? false, skipInstall: options.skipInstall ?? false, + skipPostInstall: options.skipPostInstall ?? false, skipPackageJson: options.skipPackageJson ?? false, style: options.style ?? 'css', unitTestRunner: options.unitTestRunner ?? UnitTestRunner.Jest, diff --git a/packages/angular/src/generators/init/schema.d.ts b/packages/angular/src/generators/init/schema.d.ts index 6564d978857c6..b093cbf6da74c 100644 --- a/packages/angular/src/generators/init/schema.d.ts +++ b/packages/angular/src/generators/init/schema.d.ts @@ -10,4 +10,5 @@ export interface Schema { style?: Styles; linter?: Exclude; skipPackageJson?: boolean; + skipPostInstall?: boolean; } diff --git a/packages/angular/src/generators/init/schema.json b/packages/angular/src/generators/init/schema.json index 93cdb73fd02b2..3efe479638e37 100644 --- a/packages/angular/src/generators/init/schema.json +++ b/packages/angular/src/generators/init/schema.json @@ -66,6 +66,11 @@ "type": "boolean", "default": false, "description": "Do not add dependencies to `package.json`." + }, + "skipPostInstall": { + "type": "boolean", + "default": false, + "description": "Do not add or append `ngcc` to the `postinstall` script in `package.json`." } }, "additionalProperties": false diff --git a/packages/angular/src/generators/library/schema.d.ts b/packages/angular/src/generators/library/schema.d.ts index 99f51f9ae196d..83f344f3e81cf 100644 --- a/packages/angular/src/generators/library/schema.d.ts +++ b/packages/angular/src/generators/library/schema.d.ts @@ -30,4 +30,5 @@ export interface Schema { setParserOptionsProject?: boolean; skipModule?: boolean; skipPackageJson?: boolean; + skipPostInstall?: boolean; } diff --git a/packages/angular/src/generators/library/schema.json b/packages/angular/src/generators/library/schema.json index a0add44676110..d4eab849613df 100644 --- a/packages/angular/src/generators/library/schema.json +++ b/packages/angular/src/generators/library/schema.json @@ -56,6 +56,11 @@ "default": false, "description": "Do not add dependencies to `package.json`." }, + "skipPostInstall": { + "type": "boolean", + "default": false, + "description": "Do not add or append `ngcc` to the `postinstall` script in `package.json`." + }, "skipTsConfig": { "type": "boolean", "default": false, diff --git a/packages/angular/src/generators/ng-add/schema.d.ts b/packages/angular/src/generators/ng-add/schema.d.ts index e852749c7c04a..bcf0cd5a2021a 100644 --- a/packages/angular/src/generators/ng-add/schema.d.ts +++ b/packages/angular/src/generators/ng-add/schema.d.ts @@ -12,6 +12,7 @@ export interface GeneratorOptions { e2eTestRunner?: E2eTestRunner; skipFormat?: boolean; skipInstall?: boolean; + skipPostInstall?: boolean; style?: Styles; linter?: Exclude; skipPackageJson?: boolean; diff --git a/packages/angular/src/generators/ng-add/schema.json b/packages/angular/src/generators/ng-add/schema.json index 85405c6ea29fd..3f0e359415bd6 100644 --- a/packages/angular/src/generators/ng-add/schema.json +++ b/packages/angular/src/generators/ng-add/schema.json @@ -58,6 +58,11 @@ "type": "boolean", "default": false, "description": "Do not add dependencies to `package.json`. NOTE: only used if running the generator in an Nx workspace." + }, + "skipPostInstall": { + "type": "boolean", + "default": false, + "description": "Do not add or append `ngcc` to the `postinstall` script in `package.json`. NOTE: only used if running the generator in an Nx workspace." } }, "additionalProperties": false