nx 21.0.0-beta.1 → 21.0.0-beta.11
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/.eslintrc.json +5 -1
- package/migrations.json +15 -35
- package/package.json +12 -12
- package/release/index.d.ts +1 -1
- package/release/index.js +2 -1
- package/schemas/nx-schema.json +187 -35
- package/schemas/project-schema.json +5 -0
- package/src/adapter/angular-json.js +11 -0
- package/src/adapter/compat.d.ts +1 -1
- package/src/adapter/compat.js +3 -0
- package/src/command-line/add/add.js +6 -16
- package/src/command-line/affected/command-object.js +6 -6
- package/src/command-line/examples.js +0 -4
- package/src/command-line/exec/command-object.js +1 -1
- package/src/command-line/generate/generator-utils.js +8 -3
- package/src/command-line/import/import.js +1 -1
- package/src/command-line/init/command-object.js +18 -6
- package/src/command-line/init/configure-plugins.d.ts +6 -7
- package/src/command-line/init/configure-plugins.js +52 -38
- package/src/command-line/init/implementation/add-nx-to-turborepo.d.ts +4 -0
- package/src/command-line/init/implementation/add-nx-to-turborepo.js +49 -0
- package/src/command-line/init/implementation/check-compatible-with-plugins.js +7 -1
- package/src/command-line/init/implementation/deduce-default-base.d.ts +1 -0
- package/src/command-line/init/implementation/deduce-default-base.js +53 -0
- package/src/command-line/init/implementation/react/add-vite-commands-to-package-scripts.js +6 -4
- package/src/command-line/init/implementation/react/index.d.ts +1 -1
- package/src/command-line/init/implementation/react/index.js +32 -185
- package/src/command-line/init/implementation/react/write-vite-config.js +19 -3
- package/src/command-line/init/implementation/utils.d.ts +6 -2
- package/src/command-line/init/implementation/utils.js +110 -45
- package/src/command-line/init/init-v1.js +1 -1
- package/src/command-line/init/init-v2.d.ts +1 -0
- package/src/command-line/init/init-v2.js +70 -39
- package/src/command-line/migrate/migrate-ui-api.d.ts +58 -0
- package/src/command-line/migrate/migrate-ui-api.js +227 -0
- package/src/command-line/migrate/migrate.d.ts +23 -4
- package/src/command-line/migrate/migrate.js +138 -86
- package/src/command-line/nx-commands.js +19 -5
- package/src/command-line/register/command-object.d.ts +6 -0
- package/src/command-line/{activate-powerpack → register}/command-object.js +9 -9
- package/src/command-line/register/register.d.ts +2 -0
- package/src/command-line/register/register.js +9 -0
- package/src/command-line/release/changelog.js +18 -15
- package/src/command-line/release/command-object.d.ts +8 -0
- package/src/command-line/release/command-object.js +9 -0
- package/src/command-line/release/config/config.d.ts +8 -7
- package/src/command-line/release/config/config.js +139 -45
- package/src/command-line/release/config/use-legacy-versioning.d.ts +2 -0
- package/src/command-line/release/config/use-legacy-versioning.js +9 -0
- package/src/command-line/release/index.d.ts +4 -0
- package/src/command-line/release/index.js +6 -1
- package/src/command-line/release/plan-check.js +6 -3
- package/src/command-line/release/plan.js +7 -3
- package/src/command-line/release/publish.js +7 -3
- package/src/command-line/release/release.js +8 -3
- package/src/command-line/release/utils/batch-projects-by-generator-config.js +6 -3
- package/src/command-line/release/utils/git.d.ts +3 -2
- package/src/command-line/release/utils/git.js +65 -9
- package/src/command-line/release/utils/github.js +3 -1
- package/src/command-line/release/utils/resolve-semver-specifier.d.ts +2 -1
- package/src/command-line/release/utils/resolve-semver-specifier.js +2 -1
- package/src/command-line/release/utils/semver.d.ts +8 -0
- package/src/command-line/release/utils/semver.js +8 -0
- package/src/command-line/release/utils/shared-legacy.d.ts +25 -0
- package/src/command-line/release/utils/shared-legacy.js +2 -0
- package/src/command-line/release/utils/shared.d.ts +11 -17
- package/src/command-line/release/version/derive-specifier-from-conventional-commits.d.ts +7 -0
- package/src/command-line/release/version/derive-specifier-from-conventional-commits.js +47 -0
- package/src/command-line/release/version/deriver-specifier-from-version-plans.d.ts +8 -0
- package/src/command-line/release/version/deriver-specifier-from-version-plans.js +59 -0
- package/src/command-line/release/version/project-logger.d.ts +8 -0
- package/src/command-line/release/version/project-logger.js +45 -0
- package/src/command-line/release/version/release-group-processor.d.ts +252 -0
- package/src/command-line/release/version/release-group-processor.js +1057 -0
- package/src/command-line/release/version/resolve-current-version.d.ts +32 -0
- package/src/command-line/release/version/resolve-current-version.js +241 -0
- package/src/command-line/release/version/test-utils.d.ts +93 -0
- package/src/command-line/release/version/test-utils.js +415 -0
- package/src/command-line/release/version/topological-sort.d.ts +9 -0
- package/src/command-line/release/version/topological-sort.js +41 -0
- package/src/command-line/release/version/version-actions.d.ts +171 -0
- package/src/command-line/release/version/version-actions.js +195 -0
- package/src/command-line/release/version-legacy.d.ts +46 -0
- package/src/command-line/release/version-legacy.js +453 -0
- package/src/command-line/release/version.d.ts +0 -40
- package/src/command-line/release/version.js +84 -262
- package/src/command-line/repair/repair.js +8 -3
- package/src/command-line/report/report.d.ts +7 -3
- package/src/command-line/report/report.js +52 -18
- package/src/command-line/run/command-object.js +2 -2
- package/src/command-line/run/executor-utils.d.ts +6 -1
- package/src/command-line/run/executor-utils.js +10 -1
- package/src/command-line/run/run.js +2 -2
- package/src/command-line/run-many/command-object.js +2 -2
- package/src/command-line/yargs-utils/shared-options.d.ts +4 -0
- package/src/command-line/yargs-utils/shared-options.js +20 -0
- package/src/config/misc-interfaces.d.ts +20 -2
- package/src/config/nx-json.d.ts +158 -18
- package/src/config/project-graph.d.ts +4 -2
- package/src/config/project-graph.js +8 -0
- package/src/config/workspace-json-project-json.d.ts +2 -2
- package/src/core/graph/main.js +1 -1
- package/src/core/graph/runtime.js +1 -1
- package/src/core/graph/styles.css +2 -2
- package/src/core/graph/styles.js +1 -1
- package/src/daemon/client/client.d.ts +2 -0
- package/src/daemon/client/client.js +15 -0
- package/src/daemon/message-types/glob.d.ts +7 -0
- package/src/daemon/message-types/glob.js +9 -1
- package/src/daemon/message-types/hash-glob.d.ts +6 -0
- package/src/daemon/message-types/hash-glob.js +9 -1
- package/src/daemon/server/handle-glob.d.ts +1 -0
- package/src/daemon/server/handle-glob.js +8 -0
- package/src/daemon/server/handle-hash-glob.d.ts +1 -0
- package/src/daemon/server/handle-hash-glob.js +8 -0
- package/src/daemon/server/logger.js +2 -1
- package/src/daemon/server/server.js +7 -0
- package/src/devkit-exports.d.ts +1 -1
- package/src/devkit-internals.d.ts +3 -2
- package/src/devkit-internals.js +5 -1
- package/src/executors/run-commands/run-commands.impl.d.ts +2 -5
- package/src/executors/run-commands/run-commands.impl.js +14 -42
- package/src/executors/run-commands/running-tasks.d.ts +9 -4
- package/src/executors/run-commands/running-tasks.js +103 -30
- package/src/executors/run-script/run-script.impl.js +4 -3
- package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.js +8 -0
- package/src/generators/testing-utils/create-tree.js +5 -1
- package/src/migrations/update-21-0-0/release-version-config-changes.d.ts +2 -0
- package/src/migrations/update-21-0-0/release-version-config-changes.js +111 -0
- package/src/migrations/update-21-0-0/remove-custom-tasks-runner.d.ts +2 -0
- package/src/migrations/update-21-0-0/remove-custom-tasks-runner.js +38 -0
- package/src/migrations/{update-18-0-0/disable-crystal-for-existing-workspaces.js → update-21-0-0/remove-legacy-cache.js} +10 -4
- package/src/native/index.d.ts +98 -19
- package/src/native/index.js +16 -2
- package/src/native/native-bindings.js +7 -0
- package/src/native/nx.wasi-browser.js +20 -19
- package/src/native/nx.wasi.cjs +20 -19
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/nx-cloud/nx-cloud-tasks-runner-shell.js +3 -3
- package/src/plugins/js/index.d.ts +2 -1
- package/src/plugins/js/index.js +8 -1
- package/src/plugins/js/lock-file/lock-file.js +28 -13
- package/src/plugins/js/lock-file/utils/package-json.d.ts +1 -1
- package/src/plugins/js/lock-file/utils/package-json.js +8 -6
- package/src/plugins/js/lock-file/utils/pnpm-normalizer.js +3 -3
- package/src/plugins/js/lock-file/yarn-parser.js +85 -39
- package/src/plugins/js/project-graph/affected/lock-file-changes.js +1 -0
- package/src/plugins/js/project-graph/build-dependencies/explicit-project-dependencies.js +1 -1
- package/src/plugins/js/project-graph/build-dependencies/target-project-locator.d.ts +10 -1
- package/src/plugins/js/project-graph/build-dependencies/target-project-locator.js +59 -6
- package/src/plugins/js/utils/packages.js +22 -3
- package/src/plugins/js/utils/register.js +1 -0
- package/src/plugins/js/utils/typescript.js +3 -3
- package/src/plugins/package-json/create-nodes.d.ts +1 -1
- package/src/plugins/package-json/create-nodes.js +4 -2
- package/src/project-graph/affected/locators/project-glob-changes.js +2 -2
- package/src/project-graph/error-types.js +32 -2
- package/src/project-graph/file-utils.d.ts +1 -10
- package/src/project-graph/file-utils.js +2 -77
- package/src/project-graph/plugins/get-plugins.js +2 -1
- package/src/project-graph/plugins/in-process-loader.js +1 -1
- package/src/project-graph/plugins/isolation/plugin-worker.js +12 -6
- package/src/project-graph/plugins/loaded-nx-plugin.d.ts +2 -1
- package/src/project-graph/plugins/loaded-nx-plugin.js +1 -5
- package/src/project-graph/plugins/public-api.d.ts +1 -1
- package/src/project-graph/plugins/utils.d.ts +2 -2
- package/src/project-graph/plugins/utils.js +2 -2
- package/src/project-graph/project-graph.js +1 -1
- package/src/project-graph/utils/project-configuration-utils.d.ts +3 -3
- package/src/project-graph/utils/project-configuration-utils.js +54 -21
- package/src/project-graph/utils/retrieve-workspace-files.d.ts +1 -1
- package/src/project-graph/utils/retrieve-workspace-files.js +14 -18
- package/src/tasks-runner/batch/batch-messages.d.ts +2 -0
- package/src/tasks-runner/batch/run-batch.js +4 -5
- package/src/tasks-runner/cache.d.ts +21 -8
- package/src/tasks-runner/cache.js +106 -38
- package/src/tasks-runner/create-task-graph.d.ts +0 -1
- package/src/tasks-runner/create-task-graph.js +11 -11
- package/src/tasks-runner/default-tasks-runner.js +5 -14
- package/src/tasks-runner/forked-process-task-runner.d.ts +8 -3
- package/src/tasks-runner/forked-process-task-runner.js +59 -46
- package/src/tasks-runner/init-tasks-runner.d.ts +15 -1
- package/src/tasks-runner/init-tasks-runner.js +62 -2
- package/src/tasks-runner/is-tui-enabled.d.ts +2 -0
- package/src/tasks-runner/is-tui-enabled.js +64 -0
- package/src/tasks-runner/life-cycle.d.ts +14 -3
- package/src/tasks-runner/life-cycle.js +37 -2
- package/src/tasks-runner/life-cycles/task-history-life-cycle-old.d.ts +2 -0
- package/src/tasks-runner/life-cycles/task-history-life-cycle-old.js +15 -7
- package/src/tasks-runner/life-cycles/task-history-life-cycle.d.ts +5 -0
- package/src/tasks-runner/life-cycles/task-history-life-cycle.js +35 -5
- package/src/tasks-runner/life-cycles/tui-summary-life-cycle.d.ts +18 -0
- package/src/tasks-runner/life-cycles/tui-summary-life-cycle.js +230 -0
- package/src/tasks-runner/pseudo-terminal.d.ts +11 -7
- package/src/tasks-runner/pseudo-terminal.js +47 -35
- package/src/tasks-runner/run-command.d.ts +4 -1
- package/src/tasks-runner/run-command.js +219 -63
- package/src/tasks-runner/running-tasks/node-child-process.js +4 -11
- package/src/tasks-runner/running-tasks/running-task.d.ts +3 -0
- package/src/tasks-runner/running-tasks/shared-running-task.d.ts +14 -0
- package/src/tasks-runner/running-tasks/shared-running-task.js +30 -0
- package/src/tasks-runner/task-env.d.ts +1 -4
- package/src/tasks-runner/task-env.js +2 -0
- package/src/tasks-runner/task-graph-utils.d.ts +3 -0
- package/src/tasks-runner/task-graph-utils.js +31 -2
- package/src/tasks-runner/task-orchestrator.d.ts +26 -10
- package/src/tasks-runner/task-orchestrator.js +221 -57
- package/src/tasks-runner/tasks-runner.d.ts +1 -0
- package/src/tasks-runner/tasks-schedule.d.ts +1 -0
- package/src/tasks-runner/tasks-schedule.js +9 -0
- package/src/tasks-runner/utils.d.ts +2 -2
- package/src/tasks-runner/utils.js +18 -12
- package/src/utils/child-process.d.ts +4 -0
- package/src/utils/child-process.js +23 -30
- package/src/utils/command-line-utils.d.ts +1 -1
- package/src/utils/find-matching-projects.js +2 -2
- package/src/utils/git-utils.d.ts +1 -1
- package/src/utils/git-utils.js +8 -3
- package/src/utils/handle-errors.js +15 -0
- package/src/utils/is-ci.js +4 -1
- package/src/utils/is-using-prettier.d.ts +3 -0
- package/src/utils/is-using-prettier.js +62 -0
- package/src/utils/nx-key.d.ts +7 -0
- package/src/utils/nx-key.js +52 -0
- package/src/utils/package-json.d.ts +1 -1
- package/src/utils/package-json.js +16 -2
- package/src/utils/package-manager.js +2 -2
- package/src/utils/path.js +1 -1
- package/src/utils/require-nx-key.d.ts +1 -0
- package/src/utils/require-nx-key.js +22 -0
- package/src/utils/workspace-context.d.ts +2 -0
- package/src/utils/workspace-context.js +16 -0
- package/src/command-line/activate-powerpack/activate-powerpack.d.ts +0 -2
- package/src/command-line/activate-powerpack/activate-powerpack.js +0 -34
- package/src/command-line/activate-powerpack/command-object.d.ts +0 -6
- package/src/command-line/init/implementation/react/write-craco-config.d.ts +0 -1
- package/src/command-line/init/implementation/react/write-craco-config.js +0 -61
- package/src/migrations/update-17-0-0/move-cache-directory.d.ts +0 -2
- package/src/migrations/update-17-0-0/move-cache-directory.js +0 -35
- package/src/migrations/update-17-0-0/rm-default-collection-npm-scope.js +0 -72
- package/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.d.ts +0 -2
- package/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.js +0 -122
- package/src/migrations/update-17-2-0/move-default-base.d.ts +0 -5
- package/src/migrations/update-17-2-0/move-default-base.js +0 -21
- package/src/migrations/update-17-3-0/nx-release-path.d.ts +0 -3
- package/src/migrations/update-17-3-0/nx-release-path.js +0 -47
- package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.d.ts +0 -2
- package/src/utils/powerpack.d.ts +0 -5
- package/src/utils/powerpack.js +0 -33
- /package/src/migrations/{update-17-0-0/rm-default-collection-npm-scope.d.ts → update-21-0-0/remove-legacy-cache.d.ts} +0 -0
@@ -1,6 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.PseudoTtyProcess = void 0;
|
4
|
+
exports.getRunNxBaseCommand = getRunNxBaseCommand;
|
4
5
|
exports.runNxSync = runNxSync;
|
5
6
|
exports.runNxAsync = runNxAsync;
|
6
7
|
const child_process_1 = require("child_process");
|
@@ -8,46 +9,38 @@ const fs_1 = require("fs");
|
|
8
9
|
const path_1 = require("path");
|
9
10
|
const package_manager_1 = require("./package-manager");
|
10
11
|
const workspace_root_1 = require("./workspace-root");
|
11
|
-
function
|
12
|
-
let baseCmd;
|
12
|
+
function getRunNxBaseCommand(packageManagerCommand, cwd = process.cwd()) {
|
13
13
|
if ((0, fs_1.existsSync)((0, path_1.join)(workspace_root_1.workspaceRoot, 'package.json'))) {
|
14
|
-
|
14
|
+
if (!packageManagerCommand) {
|
15
|
+
const pm = (0, package_manager_1.detectPackageManager)();
|
16
|
+
packageManagerCommand = (0, package_manager_1.getPackageManagerCommand)(pm);
|
17
|
+
}
|
18
|
+
return `${packageManagerCommand.exec} nx`;
|
15
19
|
}
|
16
20
|
else {
|
17
|
-
|
18
|
-
options.cwd ??= process.cwd();
|
19
|
-
options.windowsHide ??= true;
|
20
|
-
const offsetFromRoot = (0, path_1.relative)(options.cwd, (0, workspace_root_1.workspaceRootInner)(options.cwd, null));
|
21
|
+
const offsetFromRoot = (0, path_1.relative)(cwd, (0, workspace_root_1.workspaceRootInner)(cwd, null));
|
21
22
|
if (process.platform === 'win32') {
|
22
|
-
|
23
|
+
return '.\\' + (0, path_1.join)(`${offsetFromRoot}`, 'nx.bat');
|
23
24
|
}
|
24
25
|
else {
|
25
|
-
|
26
|
+
return './' + (0, path_1.join)(`${offsetFromRoot}`, 'nx');
|
26
27
|
}
|
27
28
|
}
|
28
|
-
|
29
|
+
}
|
30
|
+
function runNxSync(cmd, options) {
|
31
|
+
let { packageManagerCommand, ...execSyncOptions } = options ?? {};
|
32
|
+
execSyncOptions.cwd ??= process.cwd();
|
33
|
+
execSyncOptions.windowsHide ??= true;
|
34
|
+
const baseCmd = getRunNxBaseCommand(packageManagerCommand, execSyncOptions.cwd);
|
35
|
+
(0, child_process_1.execSync)(`${baseCmd} ${cmd}`, execSyncOptions);
|
29
36
|
}
|
30
37
|
async function runNxAsync(cmd, options) {
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
}
|
35
|
-
|
36
|
-
|
37
|
-
options.cwd ??= process.cwd();
|
38
|
-
options.windowsHide ??= true;
|
39
|
-
const offsetFromRoot = (0, path_1.relative)(options.cwd, (0, workspace_root_1.workspaceRootInner)(options.cwd, null));
|
40
|
-
if (process.platform === 'win32') {
|
41
|
-
baseCmd = '.\\' + (0, path_1.join)(`${offsetFromRoot}`, 'nx.bat');
|
42
|
-
}
|
43
|
-
else {
|
44
|
-
baseCmd = './' + (0, path_1.join)(`${offsetFromRoot}`, 'nx');
|
45
|
-
}
|
46
|
-
}
|
47
|
-
const silent = options?.silent ?? true;
|
48
|
-
if (options?.silent) {
|
49
|
-
delete options.silent;
|
50
|
-
}
|
38
|
+
options ??= {};
|
39
|
+
options.cwd ??= process.cwd();
|
40
|
+
options.windowsHide ??= true;
|
41
|
+
let { silent, packageManagerCommand, ...execSyncOptions } = options;
|
42
|
+
silent ??= true;
|
43
|
+
const baseCmd = getRunNxBaseCommand(packageManagerCommand, execSyncOptions.cwd);
|
51
44
|
return new Promise((resolve, reject) => {
|
52
45
|
const child = (0, child_process_1.exec)(`${baseCmd} ${cmd}`, options, (error, stdout, stderr) => {
|
53
46
|
if (error) {
|
@@ -8,7 +8,7 @@ export interface NxArgs {
|
|
8
8
|
targets?: string[];
|
9
9
|
configuration?: string;
|
10
10
|
/**
|
11
|
-
* @deprecated Custom task runners will
|
11
|
+
* @deprecated Custom task runners will be replaced by a new API starting with Nx 21. More info: https://nx.dev/deprecated/custom-tasks-runner
|
12
12
|
*/
|
13
13
|
runner?: string;
|
14
14
|
parallel?: number;
|
@@ -112,8 +112,8 @@ function addMatchingProjectsByName(projectNames, projects, pattern, matchedProje
|
|
112
112
|
return;
|
113
113
|
}
|
114
114
|
if (!(0, globs_1.isGlobPattern)(pattern.value)) {
|
115
|
-
// Custom regex that is basically \b
|
116
|
-
const regex = new RegExp(`(?<![a-zA-Z0-9])${pattern.value}(?![a-zA-Z0-9])`, 'i');
|
115
|
+
// Custom regex that is basically \b but includes hyphens (-) and excludes underscores (_), so "foo" pattern matches "foo_bar" but not "foo-e2e".
|
116
|
+
const regex = new RegExp(`(?<![a-zA-Z0-9-])${pattern.value}(?![a-zA-Z0-9-])`, 'i');
|
117
117
|
const matchingProjects = Object.keys(projects).filter((name) => regex.test(name));
|
118
118
|
for (const projectName of matchingProjects) {
|
119
119
|
if (pattern.exclude) {
|
package/src/utils/git-utils.d.ts
CHANGED
@@ -38,4 +38,4 @@ export declare class GitRepository {
|
|
38
38
|
export declare function getGithubSlugOrNull(): string | null;
|
39
39
|
export declare function extractUserAndRepoFromGitHubUrl(gitRemotes: string): string | null;
|
40
40
|
export declare function commitChanges(commitMessage: string, directory?: string): string | null;
|
41
|
-
export declare function getLatestCommitSha(): string | null;
|
41
|
+
export declare function getLatestCommitSha(directory?: string): string | null;
|
package/src/utils/git-utils.js
CHANGED
@@ -222,7 +222,11 @@ function parseGitHubUrl(url) {
|
|
222
222
|
}
|
223
223
|
function commitChanges(commitMessage, directory) {
|
224
224
|
try {
|
225
|
-
(0, child_process_1.execSync)('git add -A', {
|
225
|
+
(0, child_process_1.execSync)('git add -A', {
|
226
|
+
encoding: 'utf8',
|
227
|
+
stdio: 'pipe',
|
228
|
+
cwd: directory,
|
229
|
+
});
|
226
230
|
(0, child_process_1.execSync)('git commit --no-verify -F -', {
|
227
231
|
encoding: 'utf8',
|
228
232
|
stdio: 'pipe',
|
@@ -243,14 +247,15 @@ function commitChanges(commitMessage, directory) {
|
|
243
247
|
throw new Error(`Error committing changes:\n${err.stderr}`);
|
244
248
|
}
|
245
249
|
}
|
246
|
-
return getLatestCommitSha();
|
250
|
+
return getLatestCommitSha(directory);
|
247
251
|
}
|
248
|
-
function getLatestCommitSha() {
|
252
|
+
function getLatestCommitSha(directory) {
|
249
253
|
try {
|
250
254
|
return (0, child_process_1.execSync)('git rev-parse HEAD', {
|
251
255
|
encoding: 'utf8',
|
252
256
|
stdio: 'pipe',
|
253
257
|
windowsHide: false,
|
258
|
+
cwd: directory,
|
254
259
|
}).trim();
|
255
260
|
}
|
256
261
|
catch {
|
@@ -31,6 +31,21 @@ async function handleErrors(isVerbose, fn) {
|
|
31
31
|
: projectGraphError.getErrors().map((e) => e.message),
|
32
32
|
});
|
33
33
|
}
|
34
|
+
else if (err.name === 'ProjectConfigurationsError') {
|
35
|
+
const projectConfigurationsError = err;
|
36
|
+
let title = projectConfigurationsError.message;
|
37
|
+
if (projectConfigurationsError.cause &&
|
38
|
+
typeof projectConfigurationsError.cause === 'object' &&
|
39
|
+
'message' in projectConfigurationsError.cause) {
|
40
|
+
title += ' ' + projectConfigurationsError.cause.message + '.';
|
41
|
+
}
|
42
|
+
output_1.output.error({
|
43
|
+
title,
|
44
|
+
bodyLines: isVerbose
|
45
|
+
? formatErrorStackAndCause(projectConfigurationsError, isVerbose)
|
46
|
+
: projectConfigurationsError.errors.map((e) => e.message),
|
47
|
+
});
|
48
|
+
}
|
34
49
|
else {
|
35
50
|
const lines = (err.message ? err.message : err.toString()).split('\n');
|
36
51
|
const bodyLines = lines.slice(1);
|
package/src/utils/is-ci.js
CHANGED
@@ -15,6 +15,9 @@ function isCI() {
|
|
15
15
|
!!process.env.GITLAB_CI ||
|
16
16
|
!!process.env.HEROKU_TEST_RUN_ID ||
|
17
17
|
!!process.env.BUILD_ID ||
|
18
|
+
!!process.env.BUILD_NUMBER ||
|
18
19
|
!!process.env.BUILD_BUILDID ||
|
19
|
-
!!process.env.TEAMCITY_VERSION
|
20
|
+
!!process.env.TEAMCITY_VERSION ||
|
21
|
+
!!process.env.JENKINS_URL ||
|
22
|
+
!!process.env.HUDSON_URL);
|
20
23
|
}
|
@@ -0,0 +1,62 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.isUsingPrettier = isUsingPrettier;
|
4
|
+
exports.isUsingPrettierInTree = isUsingPrettierInTree;
|
5
|
+
const node_fs_1 = require("node:fs");
|
6
|
+
const node_path_1 = require("node:path");
|
7
|
+
const json_1 = require("../generators/utils/json");
|
8
|
+
const fileutils_1 = require("./fileutils");
|
9
|
+
/**
|
10
|
+
* Possible configuration files are taken from https://prettier.io/docs/configuration
|
11
|
+
*/
|
12
|
+
const configFiles = [
|
13
|
+
'.prettierrc',
|
14
|
+
'.prettierrc.json',
|
15
|
+
'.prettierrc.yml',
|
16
|
+
'.prettierrc.yaml',
|
17
|
+
'.prettierrc.json5',
|
18
|
+
'.prettierrc.js',
|
19
|
+
'prettier.config.js',
|
20
|
+
'.prettierrc.ts',
|
21
|
+
'prettier.config.ts',
|
22
|
+
'.prettierrc.mjs',
|
23
|
+
'prettier.config.mjs',
|
24
|
+
'.prettierrc.mts',
|
25
|
+
'prettier.config.mts',
|
26
|
+
'.prettierrc.cjs',
|
27
|
+
'prettier.config.cjs',
|
28
|
+
'.prettierrc.cts',
|
29
|
+
'prettier.config.cts',
|
30
|
+
'.prettierrc.toml',
|
31
|
+
];
|
32
|
+
function isUsingPrettier(root) {
|
33
|
+
for (const file of configFiles) {
|
34
|
+
if ((0, node_fs_1.existsSync)(file)) {
|
35
|
+
return true;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
// Even if no file is present, it is possible the user is configuring prettier via their package.json
|
39
|
+
const packageJsonPath = (0, node_path_1.join)(root, 'package.json');
|
40
|
+
if ((0, node_fs_1.existsSync)(packageJsonPath)) {
|
41
|
+
const packageJson = (0, fileutils_1.readJsonFile)(packageJsonPath);
|
42
|
+
if (packageJson.prettier) {
|
43
|
+
return true;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
return false;
|
47
|
+
}
|
48
|
+
function isUsingPrettierInTree(tree) {
|
49
|
+
for (const file of configFiles) {
|
50
|
+
if (tree.exists(file)) {
|
51
|
+
return true;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
// Even if no file is present, it is possible the user is configuring prettier via their package.json
|
55
|
+
if (tree.exists('package.json')) {
|
56
|
+
const packageJson = (0, json_1.readJson)(tree, 'package.json');
|
57
|
+
if (packageJson.prettier) {
|
58
|
+
return true;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
return false;
|
62
|
+
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import type { NxKey } from '@nx/key';
|
2
|
+
export declare function createNxKeyLicenseeInformation(nxKey: NxKey): string;
|
3
|
+
export declare function printNxKey(): Promise<void>;
|
4
|
+
export declare function getNxKeyInformation(): Promise<NxKey | null>;
|
5
|
+
export declare class NxKeyNotInstalledError extends Error {
|
6
|
+
constructor(e: Error);
|
7
|
+
}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.NxKeyNotInstalledError = void 0;
|
4
|
+
exports.createNxKeyLicenseeInformation = createNxKeyLicenseeInformation;
|
5
|
+
exports.printNxKey = printNxKey;
|
6
|
+
exports.getNxKeyInformation = getNxKeyInformation;
|
7
|
+
const logger_1 = require("./logger");
|
8
|
+
const package_manager_1 = require("./package-manager");
|
9
|
+
const workspace_root_1 = require("./workspace-root");
|
10
|
+
function createNxKeyLicenseeInformation(nxKey) {
|
11
|
+
if ('isPowerpack' in nxKey && nxKey.isPowerpack) {
|
12
|
+
return `Licensed to ${nxKey.organizationName} for ${nxKey.seatCount} user${nxKey.seatCount > 1 ? 's' : ''} in ${nxKey.workspaceCount === 9999
|
13
|
+
? 'an unlimited number of'
|
14
|
+
: nxKey.workspaceCount} workspace${nxKey.workspaceCount > 1 ? 's' : ''}.`;
|
15
|
+
}
|
16
|
+
else {
|
17
|
+
return `Licensed to ${nxKey.organizationName}.`;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
async function printNxKey() {
|
21
|
+
try {
|
22
|
+
const key = await getNxKeyInformation();
|
23
|
+
if (key) {
|
24
|
+
logger_1.logger.log(createNxKeyLicenseeInformation(key));
|
25
|
+
}
|
26
|
+
}
|
27
|
+
catch { }
|
28
|
+
}
|
29
|
+
async function getNxKeyInformation() {
|
30
|
+
try {
|
31
|
+
const { getPowerpackLicenseInformation, getPowerpackLicenseInformationAsync, } = (await Promise.resolve().then(() => require('@nx/powerpack-license')));
|
32
|
+
return (getPowerpackLicenseInformationAsync ?? getPowerpackLicenseInformation)(workspace_root_1.workspaceRoot);
|
33
|
+
}
|
34
|
+
catch (e) {
|
35
|
+
try {
|
36
|
+
const { getNxKeyInformationAsync } = (await Promise.resolve().then(() => require('@nx/key')));
|
37
|
+
return getNxKeyInformationAsync(workspace_root_1.workspaceRoot);
|
38
|
+
}
|
39
|
+
catch (e) {
|
40
|
+
if ('code' in e && e.code === 'MODULE_NOT_FOUND') {
|
41
|
+
throw new NxKeyNotInstalledError(e);
|
42
|
+
}
|
43
|
+
throw e;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}
|
47
|
+
class NxKeyNotInstalledError extends Error {
|
48
|
+
constructor(e) {
|
49
|
+
super(`The "@nx/key" package is needed to use Nx key enabled features. Please install it with ${(0, package_manager_1.getPackageManagerCommand)().addDev} @nx/key`, { cause: e });
|
50
|
+
}
|
51
|
+
}
|
52
|
+
exports.NxKeyNotInstalledError = NxKeyNotInstalledError;
|
@@ -74,7 +74,7 @@ export declare function readNxMigrateConfig(json: Partial<PackageJson>): NxMigra
|
|
74
74
|
export declare function buildTargetFromScript(script: string, scripts: Record<string, string>, packageManagerCommand: PackageManagerCommands): TargetConfiguration;
|
75
75
|
export declare function getMetadataFromPackageJson(packageJson: PackageJson, isInPackageManagerWorkspaces: boolean): ProjectMetadata;
|
76
76
|
export declare function getTagsFromPackageJson(packageJson: PackageJson): string[];
|
77
|
-
export declare function readTargetsFromPackageJson(packageJson: PackageJson, nxJson: NxJsonConfiguration): Record<string, TargetConfiguration<any>>;
|
77
|
+
export declare function readTargetsFromPackageJson(packageJson: PackageJson, nxJson: NxJsonConfiguration, projectRoot: string, workspaceRoot: string): Record<string, TargetConfiguration<any>>;
|
78
78
|
/**
|
79
79
|
* Uses `require.resolve` to read the package.json for a module.
|
80
80
|
*
|
@@ -83,7 +83,7 @@ function getTagsFromPackageJson(packageJson) {
|
|
83
83
|
}
|
84
84
|
return tags;
|
85
85
|
}
|
86
|
-
function readTargetsFromPackageJson(packageJson, nxJson) {
|
86
|
+
function readTargetsFromPackageJson(packageJson, nxJson, projectRoot, workspaceRoot) {
|
87
87
|
const { scripts, nx, private: isPrivate } = packageJson ?? {};
|
88
88
|
const res = {};
|
89
89
|
const includedScripts = nx?.includedScripts || Object.keys(scripts ?? {});
|
@@ -102,7 +102,9 @@ function readTargetsFromPackageJson(packageJson, nxJson) {
|
|
102
102
|
* Any targetDefaults for the nx-release-publish target set by the user should
|
103
103
|
* be merged with the implicit target.
|
104
104
|
*/
|
105
|
-
if (!isPrivate &&
|
105
|
+
if (!isPrivate &&
|
106
|
+
!res['nx-release-publish'] &&
|
107
|
+
hasNxJsPlugin(projectRoot, workspaceRoot)) {
|
106
108
|
const nxReleasePublishTargetDefaults = nxJson?.targetDefaults?.['nx-release-publish'] ?? {};
|
107
109
|
res['nx-release-publish'] = {
|
108
110
|
executor: '@nx/js:release-publish',
|
@@ -119,6 +121,18 @@ function readTargetsFromPackageJson(packageJson, nxJson) {
|
|
119
121
|
}
|
120
122
|
return res;
|
121
123
|
}
|
124
|
+
function hasNxJsPlugin(projectRoot, workspaceRoot) {
|
125
|
+
try {
|
126
|
+
// nx-ignore-next-line
|
127
|
+
require.resolve('@nx/js', {
|
128
|
+
paths: [projectRoot, ...(0, installation_directory_1.getNxRequirePaths)(workspaceRoot), __dirname],
|
129
|
+
});
|
130
|
+
return true;
|
131
|
+
}
|
132
|
+
catch {
|
133
|
+
return false;
|
134
|
+
}
|
135
|
+
}
|
122
136
|
/**
|
123
137
|
* Uses `require.resolve` to read the package.json for a module.
|
124
138
|
*
|
@@ -35,7 +35,7 @@ const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
35
35
|
function detectPackageManager(dir = '') {
|
36
36
|
const nxJson = (0, configuration_1.readNxJson)();
|
37
37
|
return (nxJson.cli?.packageManager ??
|
38
|
-
((0, fs_1.existsSync)((0, path_1.join)(dir, 'bun.lockb'))
|
38
|
+
((0, fs_1.existsSync)((0, path_1.join)(dir, 'bun.lockb')) || (0, fs_1.existsSync)((0, path_1.join)(dir, 'bun.lock'))
|
39
39
|
? 'bun'
|
40
40
|
: (0, fs_1.existsSync)((0, path_1.join)(dir, 'yarn.lock'))
|
41
41
|
? 'yarn'
|
@@ -151,7 +151,7 @@ function getPackageManagerCommand(packageManager = detectPackageManager(), root
|
|
151
151
|
};
|
152
152
|
},
|
153
153
|
bun: () => {
|
154
|
-
// bun doesn't current support
|
154
|
+
// bun doesn't current support programmatically reading config https://github.com/oven-sh/bun/issues/7140
|
155
155
|
return {
|
156
156
|
install: 'bun install',
|
157
157
|
ciInstall: 'bun install --no-cache',
|
package/src/utils/path.js
CHANGED
@@ -6,7 +6,7 @@ exports.getCwd = getCwd;
|
|
6
6
|
const path = require("path");
|
7
7
|
const workspace_root_1 = require("./workspace-root");
|
8
8
|
function removeWindowsDriveLetter(osSpecificPath) {
|
9
|
-
return osSpecificPath.replace(/^[
|
9
|
+
return osSpecificPath.replace(/^[a-zA-Z]:/, '');
|
10
10
|
}
|
11
11
|
/**
|
12
12
|
* Coverts an os specific path to a unix style path. Use this when writing paths to config files.
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function requireNxKey(): Promise<typeof import('@nx/key')>;
|
@@ -0,0 +1,22 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.requireNxKey = requireNxKey;
|
4
|
+
const child_process_1 = require("child_process");
|
5
|
+
const package_manager_1 = require("./package-manager");
|
6
|
+
async function requireNxKey() {
|
7
|
+
// @ts-ignore
|
8
|
+
return Promise.resolve().then(() => require('@nx/key')).catch(async (e) => {
|
9
|
+
if ('code' in e && e.code === 'MODULE_NOT_FOUND') {
|
10
|
+
try {
|
11
|
+
(0, child_process_1.execSync)(`${(0, package_manager_1.getPackageManagerCommand)().addDev} @nx/key@latest`, {
|
12
|
+
windowsHide: false,
|
13
|
+
});
|
14
|
+
// @ts-ignore
|
15
|
+
return await Promise.resolve().then(() => require('@nx/key'));
|
16
|
+
}
|
17
|
+
catch (e) {
|
18
|
+
throw new Error('Failed to install @nx/key. Please install @nx/key and try again.');
|
19
|
+
}
|
20
|
+
}
|
21
|
+
});
|
22
|
+
}
|
@@ -10,7 +10,9 @@ export declare function getNxWorkspaceFilesFromContext(workspaceRoot: string, pr
|
|
10
10
|
*/
|
11
11
|
export declare function globWithWorkspaceContextSync(workspaceRoot: string, globs: string[], exclude?: string[]): string[];
|
12
12
|
export declare function globWithWorkspaceContext(workspaceRoot: string, globs: string[], exclude?: string[]): Promise<string[]>;
|
13
|
+
export declare function multiGlobWithWorkspaceContext(workspaceRoot: string, globs: string[], exclude?: string[]): Promise<string[][]>;
|
13
14
|
export declare function hashWithWorkspaceContext(workspaceRoot: string, globs: string[], exclude?: string[]): Promise<string>;
|
15
|
+
export declare function hashMultiGlobWithWorkspaceContext(workspaceRoot: string, globGroups: string[][]): Promise<string[]>;
|
14
16
|
export declare function updateContextWithChangedFiles(workspaceRoot: string, createdFiles: string[], updatedFiles: string[], deletedFiles: string[]): Promise<void>;
|
15
17
|
export declare function updateFilesInContext(workspaceRoot: string, updatedFiles: string[], deletedFiles: string[]): Record<string, string>;
|
16
18
|
export declare function getAllFileDataInContext(workspaceRoot: string): Promise<import("../native").FileData[]>;
|
@@ -4,7 +4,9 @@ exports.setupWorkspaceContext = setupWorkspaceContext;
|
|
4
4
|
exports.getNxWorkspaceFilesFromContext = getNxWorkspaceFilesFromContext;
|
5
5
|
exports.globWithWorkspaceContextSync = globWithWorkspaceContextSync;
|
6
6
|
exports.globWithWorkspaceContext = globWithWorkspaceContext;
|
7
|
+
exports.multiGlobWithWorkspaceContext = multiGlobWithWorkspaceContext;
|
7
8
|
exports.hashWithWorkspaceContext = hashWithWorkspaceContext;
|
9
|
+
exports.hashMultiGlobWithWorkspaceContext = hashMultiGlobWithWorkspaceContext;
|
8
10
|
exports.updateContextWithChangedFiles = updateContextWithChangedFiles;
|
9
11
|
exports.updateFilesInContext = updateFilesInContext;
|
10
12
|
exports.getAllFileDataInContext = getAllFileDataInContext;
|
@@ -50,6 +52,13 @@ async function globWithWorkspaceContext(workspaceRoot, globs, exclude) {
|
|
50
52
|
return client_1.daemonClient.glob(globs, exclude);
|
51
53
|
}
|
52
54
|
}
|
55
|
+
async function multiGlobWithWorkspaceContext(workspaceRoot, globs, exclude) {
|
56
|
+
if ((0, is_on_daemon_1.isOnDaemon)() || !client_1.daemonClient.enabled()) {
|
57
|
+
ensureContextAvailable(workspaceRoot);
|
58
|
+
return workspaceContext.multiGlob(globs, exclude);
|
59
|
+
}
|
60
|
+
return client_1.daemonClient.multiGlob(globs, exclude);
|
61
|
+
}
|
53
62
|
async function hashWithWorkspaceContext(workspaceRoot, globs, exclude) {
|
54
63
|
if ((0, is_on_daemon_1.isOnDaemon)() || !client_1.daemonClient.enabled()) {
|
55
64
|
ensureContextAvailable(workspaceRoot);
|
@@ -57,6 +66,13 @@ async function hashWithWorkspaceContext(workspaceRoot, globs, exclude) {
|
|
57
66
|
}
|
58
67
|
return client_1.daemonClient.hashGlob(globs, exclude);
|
59
68
|
}
|
69
|
+
async function hashMultiGlobWithWorkspaceContext(workspaceRoot, globGroups) {
|
70
|
+
if ((0, is_on_daemon_1.isOnDaemon)() || !client_1.daemonClient.enabled()) {
|
71
|
+
ensureContextAvailable(workspaceRoot);
|
72
|
+
return workspaceContext.hashFilesMatchingGlobs(globGroups);
|
73
|
+
}
|
74
|
+
return client_1.daemonClient.hashMultiGlob(globGroups);
|
75
|
+
}
|
60
76
|
async function updateContextWithChangedFiles(workspaceRoot, createdFiles, updatedFiles, deletedFiles) {
|
61
77
|
if (!client_1.daemonClient.enabled()) {
|
62
78
|
updateFilesInContext(workspaceRoot, [...createdFiles, ...updatedFiles], deletedFiles);
|
@@ -1,34 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.handleActivatePowerpack = handleActivatePowerpack;
|
4
|
-
const workspace_root_1 = require("../../utils/workspace-root");
|
5
|
-
const enquirer_1 = require("enquirer");
|
6
|
-
const child_process_1 = require("child_process");
|
7
|
-
const package_manager_1 = require("../../utils/package-manager");
|
8
|
-
async function handleActivatePowerpack(options) {
|
9
|
-
const license = options.license ??
|
10
|
-
(await (0, enquirer_1.prompt)({
|
11
|
-
type: 'input',
|
12
|
-
name: 'license',
|
13
|
-
message: 'Enter your License Key',
|
14
|
-
}));
|
15
|
-
const { activatePowerpack } = await requirePowerpack();
|
16
|
-
activatePowerpack(workspace_root_1.workspaceRoot, license);
|
17
|
-
}
|
18
|
-
async function requirePowerpack() {
|
19
|
-
// @ts-ignore
|
20
|
-
return Promise.resolve().then(() => require('@nx/powerpack-license')).catch(async (e) => {
|
21
|
-
if ('code' in e && e.code === 'MODULE_NOT_FOUND') {
|
22
|
-
try {
|
23
|
-
(0, child_process_1.execSync)(`${(0, package_manager_1.getPackageManagerCommand)().addDev} @nx/powerpack-license@latest`, {
|
24
|
-
windowsHide: false,
|
25
|
-
});
|
26
|
-
// @ts-ignore
|
27
|
-
return await Promise.resolve().then(() => require('@nx/powerpack-license'));
|
28
|
-
}
|
29
|
-
catch (e) {
|
30
|
-
throw new Error('Failed to install @nx/powerpack-license. Please install @nx/powerpack-license and try again.');
|
31
|
-
}
|
32
|
-
}
|
33
|
-
});
|
34
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
export declare function writeCracoConfig(appName: string, isCRA5: boolean, isStandalone: boolean): void;
|
@@ -1,61 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.writeCracoConfig = writeCracoConfig;
|
4
|
-
const fs_1 = require("fs");
|
5
|
-
function writeCracoConfig(appName, isCRA5, isStandalone) {
|
6
|
-
const configOverride = `
|
7
|
-
const path = require('path');
|
8
|
-
const TsConfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
|
9
|
-
const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin');
|
10
|
-
module.exports = {
|
11
|
-
webpack: {
|
12
|
-
configure: (config) => {
|
13
|
-
// Remove guard against importing modules outside of \`src\`.
|
14
|
-
// Needed for workspace projects.
|
15
|
-
config.resolve.plugins = config.resolve.plugins.filter(
|
16
|
-
(plugin) => !(plugin instanceof ModuleScopePlugin)
|
17
|
-
);
|
18
|
-
// Add support for importing workspace projects.
|
19
|
-
config.resolve.plugins.push(
|
20
|
-
new TsConfigPathsPlugin({
|
21
|
-
configFile: path.resolve(__dirname, 'tsconfig.json'),
|
22
|
-
extensions: ['.ts', '.tsx', '.js', '.jsx'],
|
23
|
-
mainFields: ['browser', 'module', 'main'],
|
24
|
-
})
|
25
|
-
);
|
26
|
-
${isCRA5
|
27
|
-
? `
|
28
|
-
// Replace include option for babel loader with exclude
|
29
|
-
// so babel will handle workspace projects as well.
|
30
|
-
config.module.rules[1].oneOf.forEach((r) => {
|
31
|
-
if (r.loader && r.loader.indexOf('babel') !== -1) {
|
32
|
-
r.exclude = /node_modules/;
|
33
|
-
delete r.include;
|
34
|
-
}
|
35
|
-
});`
|
36
|
-
: `
|
37
|
-
// Replace include option for babel loader with exclude
|
38
|
-
// so babel will handle workspace projects as well.
|
39
|
-
config.module.rules.forEach((r) => {
|
40
|
-
if (r.oneOf) {
|
41
|
-
const babelLoader = r.oneOf.find(
|
42
|
-
(rr) => rr.loader.indexOf('babel-loader') !== -1
|
43
|
-
);
|
44
|
-
babelLoader.exclude = /node_modules/;
|
45
|
-
delete babelLoader.include;
|
46
|
-
}
|
47
|
-
});
|
48
|
-
`}
|
49
|
-
return config;
|
50
|
-
},
|
51
|
-
},
|
52
|
-
jest: {
|
53
|
-
configure: (config) => {
|
54
|
-
config.resolver = '@nx/jest/plugins/resolver';
|
55
|
-
return config;
|
56
|
-
},
|
57
|
-
},
|
58
|
-
};
|
59
|
-
`;
|
60
|
-
(0, fs_1.writeFileSync)(isStandalone ? 'craco.config.js' : `apps/${appName}/craco.config.js`, configOverride);
|
61
|
-
}
|
@@ -1,35 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.default = moveCacheDirectory;
|
4
|
-
const ignore_1 = require("ignore");
|
5
|
-
function moveCacheDirectory(tree) {
|
6
|
-
// If nx.json doesn't exist the repo can't utilize
|
7
|
-
// caching, so .nx/cache is less relevant. Lerna users
|
8
|
-
// that don't want to fully opt in to Nx at this time
|
9
|
-
// may also be caught off guard by the appearance of
|
10
|
-
// a .nx directory, so we are going to special case
|
11
|
-
// this for the time being.
|
12
|
-
if (tree.exists('lerna.json') && !tree.exists('nx.json')) {
|
13
|
-
return;
|
14
|
-
}
|
15
|
-
updateGitIgnore(tree);
|
16
|
-
if (tree.exists('.prettierignore')) {
|
17
|
-
const ignored = tree.read('.prettierignore', 'utf-8');
|
18
|
-
if (!ignored.includes('.nx/cache')) {
|
19
|
-
tree.write('.prettierignore', [ignored, '/.nx/cache'].join('\n'));
|
20
|
-
}
|
21
|
-
}
|
22
|
-
}
|
23
|
-
function updateGitIgnore(tree) {
|
24
|
-
const gitignore = tree.exists('.gitignore')
|
25
|
-
? tree.read('.gitignore', 'utf-8')
|
26
|
-
: '';
|
27
|
-
const ig = (0, ignore_1.default)();
|
28
|
-
ig.add(gitignore);
|
29
|
-
if (!ig.ignores('.nx/cache')) {
|
30
|
-
const updatedLines = gitignore.length
|
31
|
-
? [gitignore, '.nx/cache']
|
32
|
-
: ['.nx/cache'];
|
33
|
-
tree.write('.gitignore', updatedLines.join('\n'));
|
34
|
-
}
|
35
|
-
}
|