From 5161e4128cf3062e31c3e90806990ada62bafcf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leosvel=20P=C3=A9rez=20Espinosa?= Date: Fri, 23 Feb 2024 21:27:58 +0100 Subject: [PATCH] fix(misc): set nx property in root package.json when no replacing script in nx init (#21974) --- packages/nx/src/command-line/init/init-v2.ts | 40 +++++++++++--------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/packages/nx/src/command-line/init/init-v2.ts b/packages/nx/src/command-line/init/init-v2.ts index 369d9ceeb4059..435740560f73b 100644 --- a/packages/nx/src/command-line/init/init-v2.ts +++ b/packages/nx/src/command-line/init/init-v2.ts @@ -5,7 +5,7 @@ import { output } from '../../utils/output'; import { getPackageManagerCommand } from '../../utils/package-manager'; import { generateDotNxSetup } from './implementation/dot-nx/add-nx-scripts'; import { runNxSync } from '../../utils/child-process'; -import { readJsonFile } from '../../utils/fileutils'; +import { readJsonFile, writeJsonFile } from '../../utils/fileutils'; import { nxVersion } from '../../utils/versions'; import { addDepsToPackageJson, @@ -21,6 +21,7 @@ import { globWithWorkspaceContext } from '../../utils/workspace-context'; import { connectExistingRepoToNxCloudPrompt } from '../connect/connect-to-nx-cloud'; import { addNxToNpmRepo } from './implementation/add-nx-to-npm-repo'; import { addNxToMonorepo } from './implementation/add-nx-to-monorepo'; +import { join } from 'path'; export interface InitArgs { interactive: boolean; @@ -87,27 +88,32 @@ export async function initHandler(options: InitArgs): Promise { createNxJsonFile(repoRoot, [], [], {}); updateGitIgnore(repoRoot); - addDepsToPackageJson(repoRoot, detectPluginsResponse?.plugins ?? []); + addDepsToPackageJson(repoRoot, detectPluginsResponse.plugins); output.log({ title: '📦 Installing Nx' }); runInstall(repoRoot, pmc); - if (detectPluginsResponse) { - output.log({ title: '🔨 Configuring plugins' }); - for (const plugin of detectPluginsResponse.plugins) { - execSync( - `${pmc.exec} nx g ${plugin}:init --keepExistingVersions ${ - detectPluginsResponse.updatePackageScripts - ? '--updatePackageScripts' - : '' - } --no-interactive`, - { - stdio: [0, 1, 2], - cwd: repoRoot, - } - ); - } + output.log({ title: '🔨 Configuring plugins' }); + for (const plugin of detectPluginsResponse.plugins) { + execSync( + `${pmc.exec} nx g ${plugin}:init --keepExistingVersions ${ + detectPluginsResponse.updatePackageScripts + ? '--updatePackageScripts' + : '' + } --no-interactive`, + { + stdio: [0, 1, 2], + cwd: repoRoot, + } + ); + } + + if (!detectPluginsResponse.updatePackageScripts) { + const rootPackageJsonPath = join(repoRoot, 'package.json'); + const json = readJsonFile(rootPackageJsonPath); + json.nx = {}; + writeJsonFile(rootPackageJsonPath, json); } if (useNxCloud) {