From 7434a2af8eac4104a9f05c15d91ecda76cf8995d Mon Sep 17 00:00:00 2001 From: Miroslav Jonas Date: Fri, 18 Aug 2023 10:16:26 +0200 Subject: [PATCH] fix(core): move pre install into new --- packages/devkit/src/tasks/install-packages-task.ts | 6 ------ packages/workspace/src/generators/new/new.ts | 10 ++++++++++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/devkit/src/tasks/install-packages-task.ts b/packages/devkit/src/tasks/install-packages-task.ts index 2426fc95c62df..99ceaf4a2a653 100644 --- a/packages/devkit/src/tasks/install-packages-task.ts +++ b/packages/devkit/src/tasks/install-packages-task.ts @@ -4,7 +4,6 @@ import { requireNx } from '../../nx'; import type { Tree } from 'nx/src/generators/tree'; import type { PackageManager } from 'nx/src/utils/package-manager'; -import { existsSync } from 'fs'; const { detectPackageManager, getPackageManagerCommand, joinPathFragments } = requireNx(); @@ -43,11 +42,6 @@ export function installPackagesTask( cwd: join(tree.root, cwd), stdio: process.env.NX_GENERATE_QUIET === 'true' ? 'ignore' : 'inherit', }; - // only run preinstall if install hasn't been run yet - // this only happens during CNW when preset is adding its dependencies - if (pmc.preInstall && !existsSync(joinPathFragments(cwd, 'node_modules'))) { - execSync(pmc.preInstall, execSyncOptions); - } execSync(pmc.install, execSyncOptions); } } diff --git a/packages/workspace/src/generators/new/new.ts b/packages/workspace/src/generators/new/new.ts index d4483a5a1897f..c1cad2e2361aa 100644 --- a/packages/workspace/src/generators/new/new.ts +++ b/packages/workspace/src/generators/new/new.ts @@ -1,6 +1,8 @@ import { addDependenciesToPackageJson, + getPackageManagerCommand, installPackagesTask, + joinPathFragments, names, PackageManager, Tree, @@ -11,6 +13,7 @@ import { Preset } from '../utils/presets'; import { Linter } from '../../utils/lint'; import { generateWorkspaceFiles } from './generate-workspace-files'; import { addPresetDependencies, generatePreset } from './generate-preset'; +import { execSync } from 'child_process'; interface Schema { directory: string; @@ -48,6 +51,13 @@ export async function newGenerator(host: Tree, opts: Schema) { addCloudDependencies(host, options); return async () => { + const pmc = getPackageManagerCommand(options.packageManager); + if (pmc.preInstall) { + execSync(pmc.preInstall, { + cwd: joinPathFragments(host.root, options.directory), + stdio: process.env.NX_GENERATE_QUIET === 'true' ? 'ignore' : 'inherit', + }); + } installPackagesTask(host, false, options.directory, options.packageManager); // TODO: move all of these into create-nx-workspace if (