@unisphere/cli 2.1.6 → 2.1.8
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
|
@@ -5,49 +5,6 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const path = require("path");
|
|
6
6
|
const debug_1 = require("debug");
|
|
7
7
|
const debug = (0, debug_1.default)('unisphere:utils:get-dependency-graph');
|
|
8
|
-
/**
|
|
9
|
-
* Resolves and loads @nrwl/devkit (or @nx/devkit) from the consumer's node_modules
|
|
10
|
-
* This ensures that when testing locally, we use the same version as the consumer would
|
|
11
|
-
* when the CLI is installed in their project.
|
|
12
|
-
*
|
|
13
|
-
* @param consumerRootDir - The root directory of the consumer project (where --cwd points)
|
|
14
|
-
* @returns The devkit module with createProjectGraphAsync function
|
|
15
|
-
*/
|
|
16
|
-
function loadDevkitFromConsumer(consumerRootDir) {
|
|
17
|
-
// Try @nx/devkit first (for Nx v16+), then fall back to @nrwl/devkit (for Nx v15)
|
|
18
|
-
let devkitPath;
|
|
19
|
-
let devkitModule;
|
|
20
|
-
try {
|
|
21
|
-
// Attempt to resolve from consumer's node_modules
|
|
22
|
-
devkitPath = require.resolve('@nx/devkit', {
|
|
23
|
-
paths: [consumerRootDir, path.join(consumerRootDir, 'node_modules')]
|
|
24
|
-
});
|
|
25
|
-
debug('Resolved @nx/devkit from consumer at: %s', devkitPath);
|
|
26
|
-
devkitModule = require(devkitPath);
|
|
27
|
-
}
|
|
28
|
-
catch (e) {
|
|
29
|
-
try {
|
|
30
|
-
// Fall back to @nrwl/devkit (for Nx v15)
|
|
31
|
-
devkitPath = require.resolve('@nrwl/devkit', {
|
|
32
|
-
paths: [consumerRootDir, path.join(consumerRootDir, 'node_modules')]
|
|
33
|
-
});
|
|
34
|
-
debug('Resolved @nrwl/devkit from consumer at: %s', devkitPath);
|
|
35
|
-
devkitModule = require(devkitPath);
|
|
36
|
-
}
|
|
37
|
-
catch (e2) {
|
|
38
|
-
// If not found in consumer's node_modules, fall back to default resolution
|
|
39
|
-
// This handles cases where the consumer doesn't have it installed yet
|
|
40
|
-
debug('Could not resolve devkit from consumer, using default resolution: %s', e2.message);
|
|
41
|
-
try {
|
|
42
|
-
devkitModule = require('@nx/devkit');
|
|
43
|
-
}
|
|
44
|
-
catch (_a) {
|
|
45
|
-
devkitModule = require('@nrwl/devkit');
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return devkitModule;
|
|
50
|
-
}
|
|
51
8
|
function matchesPattern(packageName, pattern) {
|
|
52
9
|
// Convert glob-like pattern to regex
|
|
53
10
|
// * matches any characters except /
|
|
@@ -64,23 +21,48 @@ function getDependencyGraphAndFilteredDeps(rootDir_1, packageDir_1) {
|
|
|
64
21
|
const { includeTransitive = true } = options; // Default to true for backward compatibility
|
|
65
22
|
const packagePath = path.resolve(rootDir, packageDir);
|
|
66
23
|
debug('get dependency graph for %s', packagePath);
|
|
67
|
-
//
|
|
68
|
-
//
|
|
69
|
-
|
|
70
|
-
const {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
24
|
+
// Get the Nx project graph using a subprocess
|
|
25
|
+
// We need to spawn a child process because the devkit module caches workspace state,
|
|
26
|
+
// and we need to generate the graph in the context of the consumer's workspace
|
|
27
|
+
const { execSync } = require('child_process');
|
|
28
|
+
debug('Getting project graph via subprocess in %s', rootDir);
|
|
29
|
+
let projectGraph;
|
|
30
|
+
try {
|
|
31
|
+
// Run a Node script that outputs the project graph as JSON
|
|
32
|
+
const script = `
|
|
33
|
+
const { createProjectGraphAsync } = require('@nx/devkit');
|
|
34
|
+
createProjectGraphAsync().then(graph => {
|
|
35
|
+
console.log(JSON.stringify(graph));
|
|
36
|
+
}).catch(err => {
|
|
37
|
+
console.error('ERROR:', err.message);
|
|
38
|
+
process.exit(1);
|
|
39
|
+
});
|
|
40
|
+
`;
|
|
41
|
+
const result = execSync(`node -e "${script.replace(/\n/g, ' ').replace(/"/g, '\\"')}"`, {
|
|
42
|
+
cwd: rootDir,
|
|
43
|
+
encoding: 'utf-8',
|
|
44
|
+
env: Object.assign(Object.assign({}, process.env), { NX_WORKSPACE_ROOT: rootDir, NX_DAEMON: 'false' }),
|
|
45
|
+
maxBuffer: 50 * 1024 * 1024, // 50MB buffer for large project graphs
|
|
46
|
+
});
|
|
47
|
+
projectGraph = JSON.parse(result);
|
|
48
|
+
debug('Project graph loaded via subprocess');
|
|
49
|
+
}
|
|
50
|
+
catch (graphError) {
|
|
51
|
+
debug('Failed to get project graph via subprocess: %s', graphError.message);
|
|
52
|
+
throw new Error(`Failed to load Nx project graph: ${graphError.message}`);
|
|
53
|
+
}
|
|
75
54
|
const externalNodesCount = Object.keys(projectGraph.externalNodes || {}).length;
|
|
76
|
-
|
|
55
|
+
const workspaceProjects = Object.keys(projectGraph.nodes);
|
|
56
|
+
debug('Project graph loaded: %d workspace projects, %d external npm packages', workspaceProjects.length, externalNodesCount);
|
|
77
57
|
// Find the project name from the package directory
|
|
78
58
|
const projectName = Object.keys(projectGraph.nodes).find(name => {
|
|
79
59
|
const node = projectGraph.nodes[name];
|
|
80
|
-
|
|
60
|
+
const nodeRoot = node.data.root;
|
|
61
|
+
const resolvedPath = path.resolve(rootDir, nodeRoot);
|
|
62
|
+
return nodeRoot === packageDir || resolvedPath === packagePath;
|
|
81
63
|
});
|
|
82
64
|
if (!projectName) {
|
|
83
|
-
throw new Error(`Project not found for path ${packagePath}`);
|
|
65
|
+
throw new Error(`Project not found for path ${packagePath}. Available: ${workspaceProjects.join(', ')}`);
|
|
84
66
|
}
|
|
85
67
|
debug('Found project: %s', projectName);
|
|
86
68
|
const graph = {};
|
|
@@ -136,7 +118,10 @@ function getDependencyGraphAndFilteredDeps(rootDir_1, packageDir_1) {
|
|
|
136
118
|
directDependenciesName: directDependencyName ? [resolvedDirectDependencyName] : []
|
|
137
119
|
};
|
|
138
120
|
// Build dependency graph recursively
|
|
139
|
-
|
|
121
|
+
// Only traverse transitive dependencies for workspace projects, not external npm packages
|
|
122
|
+
// External npm packages (like @vitejs/plugin-react, vitest) have their own transitive deps
|
|
123
|
+
// (like react-refresh, react-is) which are build tools, not actual runtime dependencies
|
|
124
|
+
if (includeTransitive && !externalNode) {
|
|
140
125
|
dependencies.forEach(dep => {
|
|
141
126
|
traverse(dep, resolvedDirectDependencyName, visited);
|
|
142
127
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-dependency-graph.js","sourceRoot":"","sources":["../../../../../../../packages/unisphere-cli/src/lib/utils/unisphere/get-dependency-graph.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"get-dependency-graph.js","sourceRoot":"","sources":["../../../../../../../packages/unisphere-cli/src/lib/utils/unisphere/get-dependency-graph.ts"],"names":[],"mappings":"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"}
|