nx 19.6.0-canary.20240725-3890edc → 19.6.0-canary.20240727-efa59fa
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 +13 -13
- package/src/command-line/affected/affected.js +1 -1
- package/src/command-line/examples.js +4 -0
- package/src/command-line/migrate/migrate.js +19 -7
- package/src/command-line/release/publish.js +3 -1
- package/src/command-line/report/report.d.ts +1 -0
- package/src/command-line/report/report.js +14 -9
- package/src/command-line/run/run-one.js +1 -1
- package/src/command-line/run-many/run-many.js +1 -1
- package/src/command-line/yargs-utils/shared-options.d.ts +1 -0
- package/src/command-line/yargs-utils/shared-options.js +5 -0
- package/src/commands-runner/create-command-graph.js +4 -2
- package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.d.ts +6 -0
- package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.js +15 -5
- package/src/generators/utils/project-configuration.js +41 -11
- package/src/native/index.d.ts +2 -0
- package/src/native/native-bindings.js +1 -0
- package/src/native/nx.wasi.cjs +35 -33
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/tasks-runner/task-env.js +3 -2
- package/src/utils/command-line-utils.d.ts +1 -0
- package/src/utils/package-json.d.ts +2 -9
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "nx",
|
3
|
-
"version": "19.6.0-canary.
|
3
|
+
"version": "19.6.0-canary.20240727-efa59fa",
|
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": {
|
@@ -41,7 +41,7 @@
|
|
41
41
|
"@yarnpkg/lockfile": "^1.1.0",
|
42
42
|
"@yarnpkg/parsers": "3.0.0-rc.46",
|
43
43
|
"@zkochan/js-yaml": "0.0.7",
|
44
|
-
"axios": "^1.
|
44
|
+
"axios": "^1.7.2",
|
45
45
|
"chalk": "^4.1.0",
|
46
46
|
"cli-cursor": "3.1.0",
|
47
47
|
"cli-spinners": "2.6.1",
|
@@ -71,7 +71,7 @@
|
|
71
71
|
"yargs-parser": "21.1.1",
|
72
72
|
"node-machine-id": "1.1.12",
|
73
73
|
"ora": "5.3.0",
|
74
|
-
"@nrwl/tao": "19.6.0-canary.
|
74
|
+
"@nrwl/tao": "19.6.0-canary.20240727-efa59fa"
|
75
75
|
},
|
76
76
|
"peerDependencies": {
|
77
77
|
"@swc-node/register": "^1.8.0",
|
@@ -86,16 +86,16 @@
|
|
86
86
|
}
|
87
87
|
},
|
88
88
|
"optionalDependencies": {
|
89
|
-
"@nx/nx-darwin-x64": "19.6.0-canary.
|
90
|
-
"@nx/nx-darwin-arm64": "19.6.0-canary.
|
91
|
-
"@nx/nx-linux-x64-gnu": "19.6.0-canary.
|
92
|
-
"@nx/nx-linux-x64-musl": "19.6.0-canary.
|
93
|
-
"@nx/nx-win32-x64-msvc": "19.6.0-canary.
|
94
|
-
"@nx/nx-linux-arm64-gnu": "19.6.0-canary.
|
95
|
-
"@nx/nx-linux-arm64-musl": "19.6.0-canary.
|
96
|
-
"@nx/nx-linux-arm-gnueabihf": "19.6.0-canary.
|
97
|
-
"@nx/nx-win32-arm64-msvc": "19.6.0-canary.
|
98
|
-
"@nx/nx-freebsd-x64": "19.6.0-canary.
|
89
|
+
"@nx/nx-darwin-x64": "19.6.0-canary.20240727-efa59fa",
|
90
|
+
"@nx/nx-darwin-arm64": "19.6.0-canary.20240727-efa59fa",
|
91
|
+
"@nx/nx-linux-x64-gnu": "19.6.0-canary.20240727-efa59fa",
|
92
|
+
"@nx/nx-linux-x64-musl": "19.6.0-canary.20240727-efa59fa",
|
93
|
+
"@nx/nx-win32-x64-msvc": "19.6.0-canary.20240727-efa59fa",
|
94
|
+
"@nx/nx-linux-arm64-gnu": "19.6.0-canary.20240727-efa59fa",
|
95
|
+
"@nx/nx-linux-arm64-musl": "19.6.0-canary.20240727-efa59fa",
|
96
|
+
"@nx/nx-linux-arm-gnueabihf": "19.6.0-canary.20240727-efa59fa",
|
97
|
+
"@nx/nx-win32-arm64-msvc": "19.6.0-canary.20240727-efa59fa",
|
98
|
+
"@nx/nx-freebsd-x64": "19.6.0-canary.20240727-efa59fa"
|
99
99
|
},
|
100
100
|
"nx-migrations": {
|
101
101
|
"migrations": "./migrations.json",
|
@@ -17,7 +17,7 @@ const find_matching_projects_1 = require("../../utils/find-matching-projects");
|
|
17
17
|
const graph_1 = require("../graph/graph");
|
18
18
|
const all_file_data_1 = require("../../utils/all-file-data");
|
19
19
|
async function affected(command, args, extraTargetDependencies = {}, extraOptions = {
|
20
|
-
excludeTaskDependencies:
|
20
|
+
excludeTaskDependencies: args.excludeTaskDependencies,
|
21
21
|
loadDotEnvFiles: process.env.NX_LOAD_DOT_ENV_FILES !== 'false',
|
22
22
|
}) {
|
23
23
|
perf_hooks_1.performance.mark('code-loading:end');
|
@@ -311,6 +311,10 @@ exports.examples = {
|
|
311
311
|
command: 'show projects --projects api-*',
|
312
312
|
description: 'Show all projects with names starting with "api-". The "projects" option is useful to see which projects would be selected by run-many',
|
313
313
|
},
|
314
|
+
{
|
315
|
+
command: 'show projects --projects tag:ui-*',
|
316
|
+
description: 'Show all projects with a tag starting with "ui-". The "projects" option is useful to see which projects would be selected by run-many',
|
317
|
+
},
|
314
318
|
{
|
315
319
|
command: 'show projects --with-target serve',
|
316
320
|
description: 'Show all projects with a serve target',
|
@@ -30,6 +30,7 @@ const child_process_2 = require("../../utils/child-process");
|
|
30
30
|
const client_1 = require("../../daemon/client/client");
|
31
31
|
const nx_cloud_utils_1 = require("../../utils/nx-cloud-utils");
|
32
32
|
const project_graph_1 = require("../../project-graph/project-graph");
|
33
|
+
const format_changed_files_with_prettier_if_available_1 = require("../../generators/internal-utils/format-changed-files-with-prettier-if-available");
|
33
34
|
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
34
35
|
function normalizeVersion(version) {
|
35
36
|
const [semver, ...prereleaseTagParts] = version.split('-');
|
@@ -669,10 +670,10 @@ function readPackageMigrationConfig(packageName, dir) {
|
|
669
670
|
};
|
670
671
|
}
|
671
672
|
}
|
672
|
-
function createMigrationsFile(root, migrations) {
|
673
|
-
|
673
|
+
async function createMigrationsFile(root, migrations) {
|
674
|
+
await writeFormattedJsonFile((0, path_1.join)(root, 'migrations.json'), { migrations });
|
674
675
|
}
|
675
|
-
function updatePackageJson(root, updatedPackages) {
|
676
|
+
async function updatePackageJson(root, updatedPackages) {
|
676
677
|
const packageJsonPath = (0, path_1.join)(root, 'package.json');
|
677
678
|
if (!(0, fs_1.existsSync)(packageJsonPath)) {
|
678
679
|
return;
|
@@ -694,7 +695,7 @@ function updatePackageJson(root, updatedPackages) {
|
|
694
695
|
json[dependencyType][p] = updatedPackages[p].version;
|
695
696
|
}
|
696
697
|
});
|
697
|
-
|
698
|
+
await writeFormattedJsonFile(packageJsonPath, json, {
|
698
699
|
appendNewLine: parseOptions.endsWithNewline,
|
699
700
|
});
|
700
701
|
}
|
@@ -719,7 +720,7 @@ async function updateInstallationDetails(root, updatedPackages) {
|
|
719
720
|
}
|
720
721
|
}
|
721
722
|
}
|
722
|
-
|
723
|
+
await writeFormattedJsonFile(nxJsonPath, nxJson, {
|
723
724
|
appendNewLine: parseOptions.endsWithNewline,
|
724
725
|
});
|
725
726
|
}
|
@@ -765,10 +766,10 @@ async function generateMigrationsJsonAndUpdatePackageJson(root, opts) {
|
|
765
766
|
excludeAppliedMigrations: opts.excludeAppliedMigrations,
|
766
767
|
});
|
767
768
|
const { migrations, packageUpdates, minVersionWithSkippedUpdates } = await migrator.migrate(opts.targetPackage, opts.targetVersion);
|
768
|
-
updatePackageJson(root, packageUpdates);
|
769
|
+
await updatePackageJson(root, packageUpdates);
|
769
770
|
await updateInstallationDetails(root, packageUpdates);
|
770
771
|
if (migrations.length > 0) {
|
771
|
-
createMigrationsFile(root, [
|
772
|
+
await createMigrationsFile(root, [
|
772
773
|
...addSplitConfigurationMigrationIfAvailable(from, packageUpdates),
|
773
774
|
...migrations,
|
774
775
|
]);
|
@@ -835,6 +836,17 @@ async function generateMigrationsJsonAndUpdatePackageJson(root, opts) {
|
|
835
836
|
throw e;
|
836
837
|
}
|
837
838
|
}
|
839
|
+
async function writeFormattedJsonFile(filePath, content, options) {
|
840
|
+
const formattedContent = await (0, format_changed_files_with_prettier_if_available_1.formatFilesWithPrettierIfAvailable)([{ path: filePath, content: JSON.stringify(content) }], workspace_root_1.workspaceRoot, { silent: true });
|
841
|
+
if (formattedContent.has(filePath)) {
|
842
|
+
(0, fs_1.writeFileSync)(filePath, formattedContent.get(filePath), {
|
843
|
+
encoding: 'utf-8',
|
844
|
+
});
|
845
|
+
}
|
846
|
+
else {
|
847
|
+
(0, fileutils_1.writeJsonFile)(filePath, content, options);
|
848
|
+
}
|
849
|
+
}
|
838
850
|
function addSplitConfigurationMigrationIfAvailable(from, packageJson) {
|
839
851
|
if (!packageJson['@nrwl/workspace'])
|
840
852
|
return [];
|
@@ -48,7 +48,9 @@ async function releasePublish(args, isCLI = false) {
|
|
48
48
|
* If the user is filtering to a subset of projects or groups, we should not run the publish task
|
49
49
|
* for dependencies, because that could cause projects outset of the filtered set to be published.
|
50
50
|
*/
|
51
|
-
const shouldExcludeTaskDependencies = _args.projects?.length > 0 ||
|
51
|
+
const shouldExcludeTaskDependencies = _args.projects?.length > 0 ||
|
52
|
+
_args.groups?.length > 0 ||
|
53
|
+
args.excludeTaskDependencies;
|
52
54
|
let overallExitStatus = 0;
|
53
55
|
if (args.projects?.length) {
|
54
56
|
/**
|
@@ -43,14 +43,18 @@ const LINE_SEPARATOR = '---------------------------------------';
|
|
43
43
|
*
|
44
44
|
*/
|
45
45
|
async function reportHandler() {
|
46
|
-
const { pm, pmVersion, localPlugins, communityPlugins, registeredPlugins, packageVersionsWeCareAbout, outOfSyncPackageGroup, projectGraphError, } = await getReportData();
|
47
|
-
const
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
46
|
+
const { pm, pmVersion, localPlugins, communityPlugins, registeredPlugins, packageVersionsWeCareAbout, outOfSyncPackageGroup, projectGraphError, nativeTarget, } = await getReportData();
|
47
|
+
const fields = [
|
48
|
+
['Node', process.versions.node],
|
49
|
+
['OS', `${process.platform}-${process.arch}`],
|
50
|
+
['Native Target', nativeTarget ?? 'Unavailable'],
|
51
|
+
[pm, pmVersion],
|
52
52
|
];
|
53
|
-
let padding = Math.max(...
|
53
|
+
let padding = Math.max(...fields.map((f) => f[0].length));
|
54
|
+
const bodyLines = fields.map(([field, value]) => `${field.padEnd(padding)} : ${value}`);
|
55
|
+
bodyLines.push('');
|
56
|
+
padding =
|
57
|
+
Math.max(...packageVersionsWeCareAbout.map((x) => x.package.length)) + 1;
|
54
58
|
packageVersionsWeCareAbout.forEach((p) => {
|
55
59
|
bodyLines.push(`${chalk.green(p.package.padEnd(padding))} : ${chalk.bold(p.version)}`);
|
56
60
|
});
|
@@ -116,6 +120,7 @@ async function getReportData() {
|
|
116
120
|
});
|
117
121
|
}
|
118
122
|
const outOfSyncPackageGroup = findMisalignedPackagesForPackage(nxPackageJson);
|
123
|
+
const native = isNativeAvailable();
|
119
124
|
return {
|
120
125
|
pm,
|
121
126
|
pmVersion,
|
@@ -125,6 +130,7 @@ async function getReportData() {
|
|
125
130
|
packageVersionsWeCareAbout,
|
126
131
|
outOfSyncPackageGroup,
|
127
132
|
projectGraphError,
|
133
|
+
nativeTarget: native ? native.getBinaryTarget() : null,
|
128
134
|
};
|
129
135
|
}
|
130
136
|
async function tryGetProjectGraph() {
|
@@ -248,8 +254,7 @@ function findInstalledPackagesWeCareAbout() {
|
|
248
254
|
}
|
249
255
|
function isNativeAvailable() {
|
250
256
|
try {
|
251
|
-
require('../../native');
|
252
|
-
return true;
|
257
|
+
return require('../../native');
|
253
258
|
}
|
254
259
|
catch {
|
255
260
|
return false;
|
@@ -14,7 +14,7 @@ const calculate_default_project_name_1 = require("../../config/calculate-default
|
|
14
14
|
const workspace_configuration_check_1 = require("../../utils/workspace-configuration-check");
|
15
15
|
const graph_1 = require("../graph/graph");
|
16
16
|
async function runOne(cwd, args, extraTargetDependencies = {}, extraOptions = {
|
17
|
-
excludeTaskDependencies:
|
17
|
+
excludeTaskDependencies: args.excludeTaskDependencies,
|
18
18
|
loadDotEnvFiles: process.env.NX_LOAD_DOT_ENV_FILES !== 'false',
|
19
19
|
}) {
|
20
20
|
perf_hooks_1.performance.mark('code-loading:end');
|
@@ -15,7 +15,7 @@ const find_matching_projects_1 = require("../../utils/find-matching-projects");
|
|
15
15
|
const workspace_configuration_check_1 = require("../../utils/workspace-configuration-check");
|
16
16
|
const graph_1 = require("../graph/graph");
|
17
17
|
async function runMany(args, extraTargetDependencies = {}, extraOptions = {
|
18
|
-
excludeTaskDependencies:
|
18
|
+
excludeTaskDependencies: args.excludeTaskDependencies,
|
19
19
|
loadDotEnvFiles: process.env.NX_LOAD_DOT_ENV_FILES !== 'false',
|
20
20
|
}) {
|
21
21
|
perf_hooks_1.performance.mark('code-loading:end');
|
@@ -18,6 +18,7 @@ export interface RunOptions {
|
|
18
18
|
dte: boolean;
|
19
19
|
batch: boolean;
|
20
20
|
useAgents: boolean;
|
21
|
+
excludeTaskDependencies: boolean;
|
21
22
|
}
|
22
23
|
export declare function withRunOptions<T>(yargs: Argv<T>): Argv<T & RunOptions>;
|
23
24
|
export declare function withTargetAndConfigurationOption(yargs: Argv, demandOption?: boolean): Argv<{
|
@@ -66,6 +66,11 @@ function withRunOptions(yargs) {
|
|
66
66
|
describe: 'Rerun the tasks even when the results are available in the cache',
|
67
67
|
type: 'boolean',
|
68
68
|
default: false,
|
69
|
+
})
|
70
|
+
.options('excludeTaskDependencies', {
|
71
|
+
describe: 'Skips running dependent tasks first',
|
72
|
+
type: 'boolean',
|
73
|
+
default: false,
|
69
74
|
})
|
70
75
|
.options('cloud', {
|
71
76
|
type: 'boolean',
|
@@ -36,8 +36,10 @@ const recursiveResolveDeps = (projectGraph, projectName, resolved) => {
|
|
36
36
|
};
|
37
37
|
function createCommandGraph(projectGraph, projectNames, nxArgs) {
|
38
38
|
const dependencies = {};
|
39
|
-
|
40
|
-
|
39
|
+
if (!nxArgs.excludeTaskDependencies) {
|
40
|
+
for (const projectName of projectNames) {
|
41
|
+
recursiveResolveDeps(projectGraph, projectName, dependencies);
|
42
|
+
}
|
41
43
|
}
|
42
44
|
const roots = Object.keys(dependencies).filter((d) => dependencies[d].length === 0);
|
43
45
|
const commandGraph = {
|
@@ -6,3 +6,9 @@ import type { Tree } from '../tree';
|
|
6
6
|
export declare function formatChangedFilesWithPrettierIfAvailable(tree: Tree, options?: {
|
7
7
|
silent?: boolean;
|
8
8
|
}): Promise<void>;
|
9
|
+
export declare function formatFilesWithPrettierIfAvailable(files: {
|
10
|
+
path: string;
|
11
|
+
content: string | Buffer;
|
12
|
+
}[], root: string, options?: {
|
13
|
+
silent?: boolean;
|
14
|
+
}): Promise<Map<string, string>>;
|
@@ -1,23 +1,32 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.formatChangedFilesWithPrettierIfAvailable = formatChangedFilesWithPrettierIfAvailable;
|
4
|
+
exports.formatFilesWithPrettierIfAvailable = formatFilesWithPrettierIfAvailable;
|
4
5
|
const path = require("path");
|
5
6
|
/**
|
6
7
|
* Formats all the created or updated files using Prettier
|
7
8
|
* @param tree - the file system tree
|
8
9
|
*/
|
9
10
|
async function formatChangedFilesWithPrettierIfAvailable(tree, options) {
|
11
|
+
const files = new Set(tree.listChanges().filter((file) => file.type !== 'DELETE'));
|
12
|
+
const results = await formatFilesWithPrettierIfAvailable(Array.from(files), tree.root, options);
|
13
|
+
for (const [path, content] of results) {
|
14
|
+
tree.write(path, content);
|
15
|
+
}
|
16
|
+
}
|
17
|
+
async function formatFilesWithPrettierIfAvailable(files, root, options) {
|
18
|
+
const results = new Map();
|
10
19
|
let prettier;
|
11
20
|
try {
|
12
21
|
prettier = await Promise.resolve().then(() => require('prettier'));
|
13
22
|
}
|
14
23
|
catch { }
|
15
|
-
if (!prettier)
|
16
|
-
return;
|
17
|
-
|
24
|
+
if (!prettier) {
|
25
|
+
return results;
|
26
|
+
}
|
18
27
|
await Promise.all(Array.from(files).map(async (file) => {
|
19
28
|
try {
|
20
|
-
const systemPath = path.join(
|
29
|
+
const systemPath = path.join(root, file.path);
|
21
30
|
let options = {
|
22
31
|
filepath: systemPath,
|
23
32
|
};
|
@@ -35,7 +44,7 @@ async function formatChangedFilesWithPrettierIfAvailable(tree, options) {
|
|
35
44
|
if (support.ignored || !support.inferredParser) {
|
36
45
|
return;
|
37
46
|
}
|
38
|
-
|
47
|
+
results.set(file.path,
|
39
48
|
// In prettier v3 the format result is a promise
|
40
49
|
await prettier.format(file.content.toString('utf-8'), options));
|
41
50
|
}
|
@@ -45,4 +54,5 @@ async function formatChangedFilesWithPrettierIfAvailable(tree, options) {
|
|
45
54
|
}
|
46
55
|
}
|
47
56
|
}));
|
57
|
+
return results;
|
48
58
|
}
|
@@ -17,10 +17,10 @@ const workspace_context_1 = require("../../utils/workspace-context");
|
|
17
17
|
const output_1 = require("../../utils/output");
|
18
18
|
const path_2 = require("../../utils/path");
|
19
19
|
const json_1 = require("./json");
|
20
|
-
const
|
21
|
-
var
|
22
|
-
Object.defineProperty(exports, "readNxJson", { enumerable: true, get: function () { return
|
23
|
-
Object.defineProperty(exports, "updateNxJson", { enumerable: true, get: function () { return
|
20
|
+
const to_project_name_1 = require("../../config/to-project-name");
|
21
|
+
var nx_json_1 = require("./nx-json");
|
22
|
+
Object.defineProperty(exports, "readNxJson", { enumerable: true, get: function () { return nx_json_1.readNxJson; } });
|
23
|
+
Object.defineProperty(exports, "updateNxJson", { enumerable: true, get: function () { return nx_json_1.updateNxJson; } });
|
24
24
|
/**
|
25
25
|
* Adds project configuration to the Nx workspace.
|
26
26
|
*
|
@@ -56,10 +56,35 @@ function addProjectConfiguration(tree, projectName, projectConfiguration, standa
|
|
56
56
|
* @param projectConfiguration - project configuration
|
57
57
|
*/
|
58
58
|
function updateProjectConfiguration(tree, projectName, projectConfiguration) {
|
59
|
-
|
60
|
-
|
59
|
+
if (tree.exists((0, path_2.joinPathFragments)(projectConfiguration.root, 'project.json'))) {
|
60
|
+
updateProjectConfigurationInProjectJson(tree, projectName, projectConfiguration);
|
61
|
+
}
|
62
|
+
else if (tree.exists((0, path_2.joinPathFragments)(projectConfiguration.root, 'package.json'))) {
|
63
|
+
updateProjectConfigurationInPackageJson(tree, projectName, projectConfiguration);
|
64
|
+
}
|
65
|
+
else {
|
61
66
|
throw new Error(`Cannot update Project ${projectName} at ${projectConfiguration.root}. It either doesn't exist yet, or may not use project.json for configuration. Use \`addProjectConfiguration()\` instead if you want to create a new project.`);
|
62
67
|
}
|
68
|
+
}
|
69
|
+
function updateProjectConfigurationInPackageJson(tree, projectName, projectConfiguration) {
|
70
|
+
const packageJsonFile = (0, path_2.joinPathFragments)(projectConfiguration.root, 'package.json');
|
71
|
+
const packageJson = (0, json_1.readJson)(tree, packageJsonFile);
|
72
|
+
if (packageJson.name === projectConfiguration.name ?? projectName) {
|
73
|
+
delete projectConfiguration.name;
|
74
|
+
}
|
75
|
+
if (projectConfiguration.targets &&
|
76
|
+
!Object.keys(projectConfiguration.targets).length) {
|
77
|
+
delete projectConfiguration.targets;
|
78
|
+
}
|
79
|
+
packageJson.nx = {
|
80
|
+
...packageJson.nx,
|
81
|
+
...projectConfiguration,
|
82
|
+
root: undefined,
|
83
|
+
};
|
84
|
+
(0, json_1.writeJson)(tree, packageJsonFile, packageJson);
|
85
|
+
}
|
86
|
+
function updateProjectConfigurationInProjectJson(tree, projectName, projectConfiguration) {
|
87
|
+
const projectConfigFile = (0, path_2.joinPathFragments)(projectConfiguration.root, 'project.json');
|
63
88
|
handleEmptyTargets(projectName, projectConfiguration);
|
64
89
|
(0, json_1.writeJson)(tree, projectConfigFile, {
|
65
90
|
name: projectConfiguration.name ?? projectName,
|
@@ -147,15 +172,20 @@ function readAndCombineAllProjectConfigurations(tree) {
|
|
147
172
|
}
|
148
173
|
else if ((0, path_1.basename)(projectFile) === 'package.json') {
|
149
174
|
const packageJson = (0, json_1.readJson)(tree, projectFile);
|
150
|
-
|
175
|
+
// We don't want to have all of the extra inferred stuff in here, as
|
176
|
+
// when generators update the project they shouldn't inline that stuff.
|
177
|
+
// so rather than using `buildProjectFromPackageJson` and stripping it out
|
178
|
+
// we are going to build the config manually.
|
179
|
+
const config = {
|
180
|
+
root: (0, path_1.dirname)(projectFile),
|
181
|
+
name: packageJson.name ?? (0, to_project_name_1.toProjectName)(projectFile),
|
182
|
+
...packageJson.nx,
|
183
|
+
};
|
151
184
|
if (!rootMap[config.root]) {
|
152
185
|
(0, project_configuration_utils_1.mergeProjectConfigurationIntoRootMap)(rootMap,
|
153
186
|
// Inferred targets, tags, etc don't show up when running generators
|
154
187
|
// This is to help avoid running into issues when trying to update the workspace
|
155
|
-
|
156
|
-
name: config.name,
|
157
|
-
root: config.root,
|
158
|
-
}, undefined, undefined, true);
|
188
|
+
config, undefined, undefined, true);
|
159
189
|
}
|
160
190
|
}
|
161
191
|
}
|
package/src/native/index.d.ts
CHANGED
@@ -116,6 +116,8 @@ export interface FileSetInput {
|
|
116
116
|
|
117
117
|
export declare export function findImports(projectFileMap: Record<string, Array<string>>): Array<ImportResult>
|
118
118
|
|
119
|
+
export declare export function getBinaryTarget(): string
|
120
|
+
|
119
121
|
/**
|
120
122
|
* Expands the given outputs into a list of existing files.
|
121
123
|
* This is used when hashing outputs
|
@@ -372,6 +372,7 @@ module.exports.copy = nativeBinding.copy
|
|
372
372
|
module.exports.EventType = nativeBinding.EventType
|
373
373
|
module.exports.expandOutputs = nativeBinding.expandOutputs
|
374
374
|
module.exports.findImports = nativeBinding.findImports
|
375
|
+
module.exports.getBinaryTarget = nativeBinding.getBinaryTarget
|
375
376
|
module.exports.getFilesForOutputs = nativeBinding.getFilesForOutputs
|
376
377
|
module.exports.hashArray = nativeBinding.hashArray
|
377
378
|
module.exports.hashFile = nativeBinding.hashFile
|
package/src/native/nx.wasi.cjs
CHANGED
@@ -88,39 +88,40 @@ function __napi_rs_initialize_modules(__napiInstance) {
|
|
88
88
|
__napiInstance.exports['__napi_register__copy_3']?.()
|
89
89
|
__napiInstance.exports['__napi_register__hash_array_4']?.()
|
90
90
|
__napiInstance.exports['__napi_register__hash_file_5']?.()
|
91
|
-
__napiInstance.exports['
|
92
|
-
__napiInstance.exports['
|
93
|
-
__napiInstance.exports['
|
94
|
-
__napiInstance.exports['
|
95
|
-
__napiInstance.exports['
|
96
|
-
__napiInstance.exports['
|
97
|
-
__napiInstance.exports['
|
98
|
-
__napiInstance.exports['
|
99
|
-
__napiInstance.exports['
|
100
|
-
__napiInstance.exports['
|
101
|
-
__napiInstance.exports['
|
102
|
-
__napiInstance.exports['
|
103
|
-
__napiInstance.exports['
|
104
|
-
__napiInstance.exports['
|
105
|
-
__napiInstance.exports['
|
106
|
-
__napiInstance.exports['
|
107
|
-
__napiInstance.exports['
|
108
|
-
__napiInstance.exports['
|
109
|
-
__napiInstance.exports['
|
110
|
-
__napiInstance.exports['
|
111
|
-
__napiInstance.exports['
|
112
|
-
__napiInstance.exports['
|
113
|
-
__napiInstance.exports['
|
114
|
-
__napiInstance.exports['
|
115
|
-
__napiInstance.exports['
|
116
|
-
__napiInstance.exports['
|
117
|
-
__napiInstance.exports['
|
118
|
-
__napiInstance.exports['
|
119
|
-
__napiInstance.exports['
|
120
|
-
__napiInstance.exports['
|
121
|
-
__napiInstance.exports['
|
122
|
-
__napiInstance.exports['
|
123
|
-
__napiInstance.exports['
|
91
|
+
__napiInstance.exports['__napi_register__IS_WASM_6']?.()
|
92
|
+
__napiInstance.exports['__napi_register__get_binary_target_7']?.()
|
93
|
+
__napiInstance.exports['__napi_register__ImportResult_struct_8']?.()
|
94
|
+
__napiInstance.exports['__napi_register__find_imports_9']?.()
|
95
|
+
__napiInstance.exports['__napi_register__transfer_project_graph_10']?.()
|
96
|
+
__napiInstance.exports['__napi_register__ExternalNode_struct_11']?.()
|
97
|
+
__napiInstance.exports['__napi_register__Target_struct_12']?.()
|
98
|
+
__napiInstance.exports['__napi_register__Project_struct_13']?.()
|
99
|
+
__napiInstance.exports['__napi_register__ProjectGraph_struct_14']?.()
|
100
|
+
__napiInstance.exports['__napi_register__HashPlanner_struct_15']?.()
|
101
|
+
__napiInstance.exports['__napi_register__HashPlanner_impl_19']?.()
|
102
|
+
__napiInstance.exports['__napi_register__HashDetails_struct_20']?.()
|
103
|
+
__napiInstance.exports['__napi_register__HasherOptions_struct_21']?.()
|
104
|
+
__napiInstance.exports['__napi_register__TaskHasher_struct_22']?.()
|
105
|
+
__napiInstance.exports['__napi_register__TaskHasher_impl_25']?.()
|
106
|
+
__napiInstance.exports['__napi_register__Task_struct_26']?.()
|
107
|
+
__napiInstance.exports['__napi_register__TaskTarget_struct_27']?.()
|
108
|
+
__napiInstance.exports['__napi_register__TaskGraph_struct_28']?.()
|
109
|
+
__napiInstance.exports['__napi_register__FileData_struct_29']?.()
|
110
|
+
__napiInstance.exports['__napi_register__InputsInput_struct_30']?.()
|
111
|
+
__napiInstance.exports['__napi_register__FileSetInput_struct_31']?.()
|
112
|
+
__napiInstance.exports['__napi_register__RuntimeInput_struct_32']?.()
|
113
|
+
__napiInstance.exports['__napi_register__EnvironmentInput_struct_33']?.()
|
114
|
+
__napiInstance.exports['__napi_register__ExternalDependenciesInput_struct_34']?.()
|
115
|
+
__napiInstance.exports['__napi_register__DepsOutputsInput_struct_35']?.()
|
116
|
+
__napiInstance.exports['__napi_register__NxJson_struct_36']?.()
|
117
|
+
__napiInstance.exports['__napi_register__WorkspaceContext_struct_37']?.()
|
118
|
+
__napiInstance.exports['__napi_register__WorkspaceContext_impl_46']?.()
|
119
|
+
__napiInstance.exports['__napi_register__WorkspaceErrors_47']?.()
|
120
|
+
__napiInstance.exports['__napi_register__NxWorkspaceFiles_struct_48']?.()
|
121
|
+
__napiInstance.exports['__napi_register__NxWorkspaceFilesExternals_struct_49']?.()
|
122
|
+
__napiInstance.exports['__napi_register__UpdatedWorkspaceFiles_struct_50']?.()
|
123
|
+
__napiInstance.exports['__napi_register__FileMap_struct_51']?.()
|
124
|
+
__napiInstance.exports['__napi_register____test_only_transfer_file_map_52']?.()
|
124
125
|
}
|
125
126
|
module.exports.HashPlanner = __napiModule.exports.HashPlanner
|
126
127
|
module.exports.ImportResult = __napiModule.exports.ImportResult
|
@@ -129,6 +130,7 @@ module.exports.WorkspaceContext = __napiModule.exports.WorkspaceContext
|
|
129
130
|
module.exports.copy = __napiModule.exports.copy
|
130
131
|
module.exports.expandOutputs = __napiModule.exports.expandOutputs
|
131
132
|
module.exports.findImports = __napiModule.exports.findImports
|
133
|
+
module.exports.getBinaryTarget = __napiModule.exports.getBinaryTarget
|
132
134
|
module.exports.getFilesForOutputs = __napiModule.exports.getFilesForOutputs
|
133
135
|
module.exports.hashArray = __napiModule.exports.hashArray
|
134
136
|
module.exports.hashFile = __napiModule.exports.hashFile
|
Binary file
|
@@ -8,6 +8,7 @@ exports.unloadDotEnvFile = unloadDotEnvFile;
|
|
8
8
|
const dotenv_1 = require("dotenv");
|
9
9
|
const dotenv_expand_1 = require("dotenv-expand");
|
10
10
|
const workspace_root_1 = require("../utils/workspace-root");
|
11
|
+
const node_path_1 = require("node:path");
|
11
12
|
function getEnvVariablesForBatchProcess(skipNxCache, captureStderr) {
|
12
13
|
return {
|
13
14
|
// User Process Env Variables override Dotenv Variables
|
@@ -158,13 +159,13 @@ function getEnvFilesForTask(task) {
|
|
158
159
|
function loadDotEnvFilesForTask(task, environmentVariables) {
|
159
160
|
const dotEnvFiles = getEnvFilesForTask(task);
|
160
161
|
for (const file of dotEnvFiles) {
|
161
|
-
loadAndExpandDotEnvFile(file, environmentVariables);
|
162
|
+
loadAndExpandDotEnvFile((0, node_path_1.join)(workspace_root_1.workspaceRoot, file), environmentVariables);
|
162
163
|
}
|
163
164
|
return environmentVariables;
|
164
165
|
}
|
165
166
|
function unloadDotEnvFiles(environmentVariables) {
|
166
167
|
for (const file of ['.env', '.local.env', '.env.local']) {
|
167
|
-
unloadDotEnvFile(file, environmentVariables);
|
168
|
+
unloadDotEnvFile((0, node_path_1.join)(workspace_root_1.workspaceRoot, file), environmentVariables);
|
168
169
|
}
|
169
170
|
return environmentVariables;
|
170
171
|
}
|
@@ -29,6 +29,7 @@ export interface NxArgs {
|
|
29
29
|
nxIgnoreCycles?: boolean;
|
30
30
|
type?: string;
|
31
31
|
batch?: boolean;
|
32
|
+
excludeTaskDependencies?: boolean;
|
32
33
|
}
|
33
34
|
export declare function createOverrides(__overrides_unparsed__?: string[]): Record<string, any>;
|
34
35
|
export declare function splitArgsIntoNxArgsAndOverrides(args: {
|
@@ -1,13 +1,6 @@
|
|
1
|
-
import {
|
1
|
+
import { ProjectConfiguration, ProjectMetadata, TargetConfiguration } from '../config/workspace-json-project-json';
|
2
2
|
import { PackageManagerCommands } from './package-manager';
|
3
|
-
export interface NxProjectPackageJsonConfiguration {
|
4
|
-
name?: string;
|
5
|
-
implicitDependencies?: string[];
|
6
|
-
tags?: string[];
|
7
|
-
namedInputs?: {
|
8
|
-
[inputName: string]: (string | InputDefinition)[];
|
9
|
-
};
|
10
|
-
targets?: Record<string, TargetConfiguration>;
|
3
|
+
export interface NxProjectPackageJsonConfiguration extends Partial<ProjectConfiguration> {
|
11
4
|
includedScripts?: string[];
|
12
5
|
}
|
13
6
|
export type ArrayPackageGroup = {
|