From a642c38cc537f3576d9a3b32e10431c9cff018dc Mon Sep 17 00:00:00 2001 From: Markus Ende <19502754+Markus-Ende@users.noreply.github.com> Date: Thu, 11 Apr 2024 13:26:48 +0200 Subject: [PATCH] build: remove outdated postinstall --- decorate-angular-cli.js | 79 ----------------------------------------- package.json | 1 - 2 files changed, 80 deletions(-) delete mode 100644 decorate-angular-cli.js diff --git a/decorate-angular-cli.js b/decorate-angular-cli.js deleted file mode 100644 index 978e937..0000000 --- a/decorate-angular-cli.js +++ /dev/null @@ -1,79 +0,0 @@ -/** - * This file decorates the Angular CLI with the Nx CLI to enable features such as computation caching - * and faster execution of tasks. - * - * It does this by: - * - * - Patching the Angular CLI to warn you in case you accidentally use the undecorated ng command. - * - Symlinking the ng to nx command, so all commands run through the Nx CLI - * - Updating the package.json postinstall script to give you control over this script - * - * The Nx CLI decorates the Angular CLI, so the Nx CLI is fully compatible with it. - * Every command you run should work the same when using the Nx CLI, except faster. - * - * Because of symlinking you can still type `ng build/test/lint` in the terminal. The ng command, in this case, - * will point to nx, which will perform optimizations before invoking ng. So the Angular CLI is always invoked. - * The Nx CLI simply does some optimizations before invoking the Angular CLI. - * - * To opt out of this patch: - * - Replace occurrences of nx with ng in your package.json - * - Remove the script from your postinstall script in your package.json - * - Delete and reinstall your node_modules - */ - -const fs = require('fs'); -const os = require('os'); -const cp = require('child_process'); -const isWindows = os.platform() === 'win32'; -let output; -try { - output = require('@nx/workspace').output; -} catch (e) { - console.warn( - 'Angular CLI could not be decorated to enable computation caching. Please ensure @nx/workspace is installed.' - ); - process.exit(0); -} - -/** - * Symlink of ng to nx, so you can keep using `ng build/test/lint` and still - * invoke the Nx CLI and get the benefits of computation caching. - */ -function symlinkNgCLItoNxCLI() { - try { - const ngPath = './node_modules/.bin/ng'; - const nxPath = './node_modules/.bin/nx'; - if (isWindows) { - /** - * This is the most reliable way to create symlink-like behavior on Windows. - * Such that it works in all shells and works with npx. - */ - ['', '.cmd', '.ps1'].forEach((ext) => { - if (fs.existsSync(nxPath + ext)) - fs.writeFileSync(ngPath + ext, fs.readFileSync(nxPath + ext)); - }); - } else { - // If unix-based, symlink - cp.execSync(`ln -sf ./nx ${ngPath}`); - } - } catch (e) { - output.error({ - title: - 'Unable to create a symlink from the Angular CLI to the Nx CLI:' + - e.message, - }); - throw e; - } -} - -try { - symlinkNgCLItoNxCLI(); - require('@nrwl/cli/lib/decorate-cli').decorateCli(); - output.log({ - title: 'Angular CLI has been decorated to enable computation caching.', - }); -} catch (e) { - output.error({ - title: 'Decoration of the Angular CLI did not complete successfully', - }); -} diff --git a/package.json b/package.json index 3f6d46d..f0946a1 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,6 @@ "license": "MIT", "scripts": { "ng": "nx", - "postinstall": "node ./decorate-angular-cli.js", "nx": "nx", "start": "nx serve", "build": "nx run-many --all --target=build --configuration production --parallel",