nx 20.4.0-canary.20250118-ee135b2 → 20.4.0-canary.20250122-3c98a1c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nx",
3
- "version": "20.4.0-canary.20250118-ee135b2",
3
+ "version": "20.4.0-canary.20250122-3c98a1c",
4
4
  "private": false,
5
5
  "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
6
6
  "repository": {
@@ -82,16 +82,16 @@
82
82
  }
83
83
  },
84
84
  "optionalDependencies": {
85
- "@nx/nx-darwin-arm64": "20.4.0-canary.20250118-ee135b2",
86
- "@nx/nx-darwin-x64": "20.4.0-canary.20250118-ee135b2",
87
- "@nx/nx-freebsd-x64": "20.4.0-canary.20250118-ee135b2",
88
- "@nx/nx-linux-arm-gnueabihf": "20.4.0-canary.20250118-ee135b2",
89
- "@nx/nx-linux-arm64-gnu": "20.4.0-canary.20250118-ee135b2",
90
- "@nx/nx-linux-arm64-musl": "20.4.0-canary.20250118-ee135b2",
91
- "@nx/nx-linux-x64-gnu": "20.4.0-canary.20250118-ee135b2",
92
- "@nx/nx-linux-x64-musl": "20.4.0-canary.20250118-ee135b2",
93
- "@nx/nx-win32-arm64-msvc": "20.4.0-canary.20250118-ee135b2",
94
- "@nx/nx-win32-x64-msvc": "20.4.0-canary.20250118-ee135b2"
85
+ "@nx/nx-darwin-arm64": "20.4.0-canary.20250122-3c98a1c",
86
+ "@nx/nx-darwin-x64": "20.4.0-canary.20250122-3c98a1c",
87
+ "@nx/nx-freebsd-x64": "20.4.0-canary.20250122-3c98a1c",
88
+ "@nx/nx-linux-arm-gnueabihf": "20.4.0-canary.20250122-3c98a1c",
89
+ "@nx/nx-linux-arm64-gnu": "20.4.0-canary.20250122-3c98a1c",
90
+ "@nx/nx-linux-arm64-musl": "20.4.0-canary.20250122-3c98a1c",
91
+ "@nx/nx-linux-x64-gnu": "20.4.0-canary.20250122-3c98a1c",
92
+ "@nx/nx-linux-x64-musl": "20.4.0-canary.20250122-3c98a1c",
93
+ "@nx/nx-win32-arm64-msvc": "20.4.0-canary.20250122-3c98a1c",
94
+ "@nx/nx-win32-x64-msvc": "20.4.0-canary.20250122-3c98a1c"
95
95
  },
96
96
  "nx-migrations": {
97
97
  "migrations": "./migrations.json",
@@ -80,9 +80,15 @@ function updateProjectConfigurationInPackageJson(tree, projectName, projectConfi
80
80
  packageJson.nx = {
81
81
  ...packageJson.nx,
82
82
  ...projectConfiguration,
83
- root: undefined,
84
83
  };
85
- (0, json_1.writeJson)(tree, packageJsonFile, packageJson);
84
+ // We don't want to ever this since it is inferred
85
+ delete packageJson.nx.root;
86
+ // Only set `nx` property in `package.json` if it is a root project (necessary to mark it as Nx project),
87
+ // or if there are properties to be set. If it is empty, then avoid it so we don't add unnecessary boilerplate.
88
+ if (projectConfiguration.root === '.' ||
89
+ Object.keys(packageJson.nx).length > 0) {
90
+ (0, json_1.writeJson)(tree, packageJsonFile, packageJson);
91
+ }
86
92
  }
87
93
  function updateProjectConfigurationInProjectJson(tree, projectName, projectConfiguration) {
88
94
  const projectConfigFile = (0, path_2.joinPathFragments)(projectConfiguration.root, 'project.json');
@@ -158,7 +164,11 @@ function readAndCombineAllProjectConfigurations(tree) {
158
164
  const patterns = [
159
165
  '**/project.json',
160
166
  'project.json',
161
- ...(0, package_json_1.getGlobPatternsFromPackageManagerWorkspaces)(tree.root, (p) => (0, json_1.readJson)(tree, p, { expectComments: true })),
167
+ ...(0, package_json_1.getGlobPatternsFromPackageManagerWorkspaces)(tree.root, (p) => (0, json_1.readJson)(tree, p, { expectComments: true }), (p) => {
168
+ const content = tree.read(p, 'utf-8');
169
+ const { load } = require('@zkochan/js-yaml');
170
+ return load(content, { filename: p });
171
+ }, (p) => tree.exists(p)),
162
172
  ];
163
173
  const globbedFiles = (0, workspace_context_1.globWithWorkspaceContextSync)(tree.root, patterns);
164
174
  const createdFiles = findCreatedProjectFiles(tree, patterns);
Binary file
@@ -3,7 +3,7 @@ import { PackageJson } from '../../../../utils/package-json';
3
3
  * Get version of hoisted package if available
4
4
  */
5
5
  export declare function getHoistedPackageVersion(packageName: string): string;
6
- export type NormalizedPackageJson = Pick<PackageJson, 'name' | 'version' | 'license' | 'dependencies' | 'devDependencies' | 'peerDependencies' | 'peerDependenciesMeta' | 'optionalDependencies'>;
6
+ export type NormalizedPackageJson = Pick<PackageJson, 'name' | 'version' | 'license' | 'dependencies' | 'devDependencies' | 'peerDependencies' | 'peerDependenciesMeta' | 'optionalDependencies' | 'packageManager'>;
7
7
  /**
8
8
  * Strip off non-pruning related fields from package.json
9
9
  */
@@ -19,7 +19,7 @@ function getHoistedPackageVersion(packageName) {
19
19
  * Strip off non-pruning related fields from package.json
20
20
  */
21
21
  function normalizePackageJson(packageJson) {
22
- const { name, version, license, dependencies, devDependencies, peerDependencies, peerDependenciesMeta, optionalDependencies, } = packageJson;
22
+ const { name, version, license, dependencies, devDependencies, peerDependencies, peerDependenciesMeta, optionalDependencies, packageManager, } = packageJson;
23
23
  return {
24
24
  name,
25
25
  version,
@@ -29,5 +29,6 @@ function normalizePackageJson(packageJson) {
29
29
  peerDependencies,
30
30
  peerDependenciesMeta,
31
31
  optionalDependencies,
32
+ packageManager,
32
33
  };
33
34
  }
@@ -418,18 +418,29 @@ function findPatchedKeys(dependencies, node) {
418
418
  }
419
419
  const BERRY_LOCK_FILE_DISCLAIMER = `# This file is generated by running "yarn install" inside your project.\n# Manual changes might be lost - proceed with caution!\n\n`;
420
420
  function generateRootWorkspacePackage(packageJson) {
421
+ let isVersion4 = false;
422
+ if (!!packageJson.packageManager) {
423
+ const [_, version] = packageJson.packageManager.split('@');
424
+ isVersion4 = !!version && (0, semver_1.satisfies)(version, '>=4.0.0');
425
+ }
426
+ const reducer = (acc, [name, version]) => {
427
+ acc[name] = isVersion4 ? `npm:${version}` : version;
428
+ return acc;
429
+ };
421
430
  return {
422
431
  version: '0.0.0-use.local',
423
432
  resolution: `${packageJson.name}@workspace:.`,
424
- ...(packageJson.dependencies && { dependencies: packageJson.dependencies }),
433
+ ...(packageJson.dependencies && {
434
+ dependencies: Object.entries(packageJson.dependencies).reduce(reducer, {}),
435
+ }),
425
436
  ...(packageJson.peerDependencies && {
426
- peerDependencies: packageJson.peerDependencies,
437
+ peerDependencies: Object.entries(packageJson.peerDependencies).reduce(reducer, {}),
427
438
  }),
428
439
  ...(packageJson.devDependencies && {
429
- devDependencies: packageJson.devDependencies,
440
+ devDependencies: Object.entries(packageJson.devDependencies).reduce(reducer, {}),
430
441
  }),
431
442
  ...(packageJson.optionalDependencies && {
432
- optionalDependencies: packageJson.optionalDependencies,
443
+ optionalDependencies: Object.entries(packageJson.optionalDependencies).reduce(reducer, {}),
433
444
  }),
434
445
  languageName: 'unknown',
435
446
  linkType: 'soft',
@@ -16,4 +16,4 @@ export declare function buildProjectConfigurationFromPackageJson(packageJson: Pa
16
16
  /**
17
17
  * Get the package.json globs from package manager workspaces
18
18
  */
19
- export declare function getGlobPatternsFromPackageManagerWorkspaces(root: string, readJson?: <T extends Object>(path: string) => T): string[];
19
+ export declare function getGlobPatternsFromPackageManagerWorkspaces(root: string, readJson?: <T extends Object>(path: string) => T, readYaml?: <T extends Object>(path: string) => T, exists?: (path: string) => boolean): string[];
@@ -151,17 +151,18 @@ function buildProjectConfigurationFromPackageJson(packageJson, workspaceRoot, pa
151
151
  /**
152
152
  * Get the package.json globs from package manager workspaces
153
153
  */
154
- function getGlobPatternsFromPackageManagerWorkspaces(root, readJson = (path) => (0, fileutils_1.readJsonFile)((0, node_path_1.join)(root, path)) // making this an arg allows us to reuse in devkit
155
- ) {
154
+ function getGlobPatternsFromPackageManagerWorkspaces(root,
155
+ // allow overwriting these args so we can use them in devkit
156
+ readJson = (path) => (0, fileutils_1.readJsonFile)((0, node_path_1.join)(root, path)), readYaml = (path) => (0, fileutils_1.readYamlFile)((0, node_path_1.join)(root, path)), exists = (p) => (0, node_fs_1.existsSync)((0, node_path_1.join)(root, p))) {
156
157
  try {
157
158
  const patterns = [];
158
159
  const packageJson = readJson('package.json');
159
160
  patterns.push(...normalizePatterns(Array.isArray(packageJson.workspaces)
160
161
  ? packageJson.workspaces
161
162
  : packageJson.workspaces?.packages ?? []));
162
- if ((0, node_fs_1.existsSync)((0, node_path_1.join)(root, 'pnpm-workspace.yaml'))) {
163
+ if (exists('pnpm-workspace.yaml')) {
163
164
  try {
164
- const { packages } = (0, fileutils_1.readYamlFile)((0, node_path_1.join)(root, 'pnpm-workspace.yaml')) ?? {};
165
+ const { packages } = readYaml('pnpm-workspace.yaml') ?? {};
165
166
  patterns.push(...normalizePatterns(packages || []));
166
167
  }
167
168
  catch (e) {
@@ -599,5 +599,10 @@ function getRunnerOptions(runner, nxJson, nxArgs, isCloudDefault) {
599
599
  return result;
600
600
  }
601
601
  function isCustomRunnerPath(modulePath) {
602
- return !['nx-cloud', '@nrwl/nx-cloud', defaultTasksRunnerPath].includes(modulePath);
602
+ return ![
603
+ 'nx-cloud',
604
+ '@nrwl/nx-cloud',
605
+ 'nx/tasks-runners/default',
606
+ defaultTasksRunnerPath,
607
+ ].includes(modulePath);
603
608
  }