From f0c18f5b7dd7406e1fcc406f8be5909e7927aa5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Jona=C5=A1?= Date: Tue, 22 Nov 2022 15:21:45 +0100 Subject: [PATCH] feat(core): move createPackageJson to nx (#13315) --- .../next/src/executors/build/lib/create-package-json.ts | 3 +-- .../utilities => nx/src/utils}/create-package-json.ts | 9 +++++---- .../src/utils/generate-package-json-webpack-plugin.ts | 6 ++---- 3 files changed, 8 insertions(+), 10 deletions(-) rename packages/{workspace/src/utilities => nx/src/utils}/create-package-json.ts (93%) diff --git a/packages/next/src/executors/build/lib/create-package-json.ts b/packages/next/src/executors/build/lib/create-package-json.ts index b39bc906aa..9371898005 100644 --- a/packages/next/src/executors/build/lib/create-package-json.ts +++ b/packages/next/src/executors/build/lib/create-package-json.ts @@ -1,6 +1,6 @@ import type { ExecutorContext } from '@nrwl/devkit'; import { writeJsonFile } from '@nrwl/devkit'; -import { createPackageJson as generatePackageJson } from '@nrwl/workspace/src/utilities/create-package-json'; +import { createPackageJson as generatePackageJson } from 'nx/src/utils/create-package-json'; import type { NextBuildBuilderOptions } from '../../../utils/types'; export async function createPackageJson( @@ -12,7 +12,6 @@ export async function createPackageJson( context.projectGraph, { root: context.root, - projectRoot: context.workspace.projects[context.projectName].sourceRoot, } ); diff --git a/packages/workspace/src/utilities/create-package-json.ts b/packages/nx/src/utils/create-package-json.ts similarity index 93% rename from packages/workspace/src/utilities/create-package-json.ts rename to packages/nx/src/utils/create-package-json.ts index cb6e78bf2d..1c55fdd1f7 100644 --- a/packages/workspace/src/utilities/create-package-json.ts +++ b/packages/nx/src/utils/create-package-json.ts @@ -1,6 +1,6 @@ -import type { ProjectGraph } from '@nrwl/devkit'; -import { readJsonFile } from '@nrwl/devkit'; +import { readJsonFile } from './fileutils'; import { sortObjectByKeys } from 'nx/src/utils/object-sort'; +import { ProjectGraph } from '../config/project-graph'; /** * Creates a package.json in the output directory for support to install dependencies within containers. @@ -11,7 +11,6 @@ export function createPackageJson( projectName: string, graph: ProjectGraph, options: { - projectRoot?: string; root?: string; } ): any { @@ -24,7 +23,9 @@ export function createPackageJson( devDependencies: {}, }; try { - packageJson = readJsonFile(`${options.projectRoot}/package.json`); + packageJson = readJsonFile( + `${graph.nodes[projectName].data.root}/package.json` + ); if (!packageJson.dependencies) { packageJson.dependencies = {}; } diff --git a/packages/webpack/src/utils/generate-package-json-webpack-plugin.ts b/packages/webpack/src/utils/generate-package-json-webpack-plugin.ts index 9290783ceb..107e533090 100644 --- a/packages/webpack/src/utils/generate-package-json-webpack-plugin.ts +++ b/packages/webpack/src/utils/generate-package-json-webpack-plugin.ts @@ -5,7 +5,7 @@ import { type ProjectGraph, serializeJson, } from '@nrwl/devkit'; -import { createPackageJson } from '@nrwl/workspace/src/utilities/create-package-json'; +import { createPackageJson } from 'nx/src/utils/create-package-json'; import { getHelperDependenciesFromProjectGraph, HelperDependency, @@ -15,14 +15,12 @@ import { readTsConfig } from '@nrwl/workspace/src/utilities/typescript'; import { NormalizedWebpackExecutorOptions } from '../executors/webpack/schema'; export class GeneratePackageJsonWebpackPlugin implements WebpackPluginInstance { - private readonly projectConfig: ProjectConfiguration; private readonly projectGraph: ProjectGraph; constructor( private readonly context: ExecutorContext, private readonly options: NormalizedWebpackExecutorOptions ) { - this.projectConfig = context.workspace.projects[context.projectName]; this.projectGraph = context.projectGraph; } @@ -68,7 +66,7 @@ export class GeneratePackageJsonWebpackPlugin implements WebpackPluginInstance { const packageJson = createPackageJson( this.context.projectName, this.projectGraph, - { root: this.context.root, projectRoot: this.projectConfig.root } + { root: this.context.root } ); packageJson.main = packageJson.main ?? this.options.outputFileName;