@nx/workspace 20.6.0-beta.0 → 20.6.0-beta.1
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 +3 -3
- package/src/generators/new/generate-preset.js +4 -4
- package/src/generators/new/generate-workspace-files.js +5 -18
- package/src/generators/new/new.d.ts +1 -0
- package/src/generators/new/schema.json +6 -1
- package/src/generators/preset/preset.js +5 -33
- package/src/generators/preset/schema.d.ts +1 -0
- package/src/generators/preset/schema.json +6 -1
- package/src/generators/utils/presets.d.ts +0 -2
- package/src/generators/utils/presets.js +0 -2
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nx/workspace",
|
3
|
-
"version": "20.6.0-beta.
|
3
|
+
"version": "20.6.0-beta.1",
|
4
4
|
"private": false,
|
5
5
|
"description": "The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.",
|
6
6
|
"repository": {
|
@@ -38,14 +38,14 @@
|
|
38
38
|
}
|
39
39
|
},
|
40
40
|
"dependencies": {
|
41
|
-
"@nx/devkit": "20.6.0-beta.
|
41
|
+
"@nx/devkit": "20.6.0-beta.1",
|
42
42
|
"@zkochan/js-yaml": "0.0.7",
|
43
43
|
"chalk": "^4.1.0",
|
44
44
|
"enquirer": "~2.3.6",
|
45
45
|
"picomatch": "4.0.2",
|
46
46
|
"tslib": "^2.3.0",
|
47
47
|
"yargs-parser": "21.1.1",
|
48
|
-
"nx": "20.6.0-beta.
|
48
|
+
"nx": "20.6.0-beta.1"
|
49
49
|
},
|
50
50
|
"publishConfig": {
|
51
51
|
"access": "public"
|
@@ -70,6 +70,9 @@ function generatePreset(host, opts) {
|
|
70
70
|
: null,
|
71
71
|
parsedArgs.interactive ? '--interactive=true' : '--interactive=false',
|
72
72
|
opts.routing !== undefined ? `--routing=${opts.routing}` : null,
|
73
|
+
opts.useReactRouter !== undefined
|
74
|
+
? `--useReactRouter=${opts.useReactRouter}`
|
75
|
+
: null,
|
73
76
|
opts.unitTestRunner !== undefined
|
74
77
|
? `--unitTestRunner=${opts.unitTestRunner}`
|
75
78
|
: null,
|
@@ -81,7 +84,7 @@ function generatePreset(host, opts) {
|
|
81
84
|
opts.prefix !== undefined ? `--prefix=${opts.prefix}` : null,
|
82
85
|
opts.nxCloudToken ? `--nxCloudToken=${opts.nxCloudToken}` : null,
|
83
86
|
opts.formatter ? `--formatter=${opts.formatter}` : null,
|
84
|
-
opts.workspaces ? `--workspaces` :
|
87
|
+
opts.workspaces !== false ? `--workspaces` : `--no-workspaces`,
|
85
88
|
].filter((e) => !!e);
|
86
89
|
}
|
87
90
|
}
|
@@ -112,9 +115,6 @@ function getPresetDependencies({ preset, presetVersion, bundler, e2eTestRunner,
|
|
112
115
|
case presets_1.Preset.NextJs:
|
113
116
|
case presets_1.Preset.NextJsStandalone:
|
114
117
|
return { dependencies: { '@nx/next': versions_1.nxVersion }, dev: {} };
|
115
|
-
case presets_1.Preset.RemixStandalone:
|
116
|
-
case presets_1.Preset.RemixMonorepo:
|
117
|
-
return { dependencies: { '@nx/remix': versions_1.nxVersion }, dev: {} };
|
118
118
|
case presets_1.Preset.VueMonorepo:
|
119
119
|
case presets_1.Preset.VueStandalone:
|
120
120
|
return {
|
@@ -52,16 +52,6 @@ const presetToPluginMap = {
|
|
52
52
|
generateLibCmd: '@nx/react',
|
53
53
|
learnMoreLink: 'https://nx.dev/nx-api/next?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects',
|
54
54
|
},
|
55
|
-
[presets_1.Preset.RemixMonorepo]: {
|
56
|
-
generateAppCmd: '@nx/remix',
|
57
|
-
generateLibCmd: '@nx/react',
|
58
|
-
learnMoreLink: 'https://nx.dev/nx-api/remix?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects',
|
59
|
-
},
|
60
|
-
[presets_1.Preset.RemixStandalone]: {
|
61
|
-
generateAppCmd: '@nx/remix',
|
62
|
-
generateLibCmd: '@nx/react',
|
63
|
-
learnMoreLink: 'https://nx.dev/nx-api/remix?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects',
|
64
|
-
},
|
65
55
|
[presets_1.Preset.ReactNative]: {
|
66
56
|
generateAppCmd: '@nx/react-native',
|
67
57
|
generateLibCmd: '@nx/react',
|
@@ -207,12 +197,11 @@ function createFiles(tree, options) {
|
|
207
197
|
options.preset === presets_1.Preset.NuxtStandalone ||
|
208
198
|
options.preset === presets_1.Preset.NodeStandalone ||
|
209
199
|
options.preset === presets_1.Preset.NextJsStandalone ||
|
210
|
-
options.preset === presets_1.Preset.RemixStandalone ||
|
211
200
|
options.preset === presets_1.Preset.TsStandalone
|
212
201
|
? './files-root-app'
|
213
202
|
: (options.preset === presets_1.Preset.TS &&
|
214
|
-
|
215
|
-
process.env.
|
203
|
+
options.workspaces &&
|
204
|
+
process.env.NX_ADD_PLUGINS !== 'false') ||
|
216
205
|
options.preset === presets_1.Preset.NPM
|
217
206
|
? './files-package-based-repo'
|
218
207
|
: './files-integrated-repo';
|
@@ -227,7 +216,7 @@ function createFiles(tree, options) {
|
|
227
216
|
packageManager: options.packageManager,
|
228
217
|
});
|
229
218
|
}
|
230
|
-
async function createReadme(tree, { name, appName, directory, preset, nxCloud }, nxCloudToken) {
|
219
|
+
async function createReadme(tree, { name, appName, directory, preset, nxCloud, workspaces }, nxCloudToken) {
|
231
220
|
const formattedNames = (0, devkit_1.names)(name);
|
232
221
|
// default to an empty one for custom presets
|
233
222
|
const presetInfo = presetToPluginMap[preset] ?? {
|
@@ -241,8 +230,7 @@ async function createReadme(tree, { name, appName, directory, preset, nxCloud },
|
|
241
230
|
formattedNames,
|
242
231
|
isJsStandalone: preset === presets_1.Preset.TsStandalone,
|
243
232
|
isTsPreset: preset === presets_1.Preset.TS,
|
244
|
-
isUsingNewTsSolutionSetup: process.env.NX_ADD_PLUGINS !== 'false' &&
|
245
|
-
process.env.NX_ADD_TS_PLUGIN !== 'false',
|
233
|
+
isUsingNewTsSolutionSetup: process.env.NX_ADD_PLUGINS !== 'false' && workspaces,
|
246
234
|
isEmptyRepo: !appName,
|
247
235
|
appName,
|
248
236
|
generateAppCmd: presetInfo.generateAppCmd,
|
@@ -325,12 +313,11 @@ function setUpWorkspacesInPackageJson(tree, options) {
|
|
325
313
|
if (options.preset === presets_1.Preset.NPM ||
|
326
314
|
(options.preset === presets_1.Preset.TS &&
|
327
315
|
process.env.NX_ADD_PLUGINS !== 'false' &&
|
328
|
-
|
316
|
+
options.workspaces) ||
|
329
317
|
((options.preset === presets_1.Preset.Expo ||
|
330
318
|
options.preset === presets_1.Preset.NextJs ||
|
331
319
|
options.preset === presets_1.Preset.ReactMonorepo ||
|
332
320
|
options.preset === presets_1.Preset.ReactNative ||
|
333
|
-
options.preset === presets_1.Preset.RemixMonorepo ||
|
334
321
|
options.preset === presets_1.Preset.VueMonorepo ||
|
335
322
|
options.preset === presets_1.Preset.Nuxt ||
|
336
323
|
options.preset === presets_1.Preset.NodeMonorepo ||
|
@@ -17,6 +17,7 @@ interface Schema {
|
|
17
17
|
bundler?: 'vite' | 'webpack';
|
18
18
|
standaloneApi?: boolean;
|
19
19
|
routing?: boolean;
|
20
|
+
useReactRouter?: boolean;
|
20
21
|
packageManager?: PackageManager;
|
21
22
|
unitTestRunner?: 'jest' | 'vitest' | 'none';
|
22
23
|
e2eTestRunner?: 'cypress' | 'playwright' | 'detox' | 'jest' | 'none';
|
@@ -25,6 +25,11 @@
|
|
25
25
|
"type": "boolean",
|
26
26
|
"default": true
|
27
27
|
},
|
28
|
+
"useReactRouter": {
|
29
|
+
"description": "Use React Router for routing.",
|
30
|
+
"type": "boolean",
|
31
|
+
"default": false
|
32
|
+
},
|
28
33
|
"standaloneApi": {
|
29
34
|
"description": "Use Standalone Components if generating an Angular application.",
|
30
35
|
"type": "boolean",
|
@@ -105,7 +110,7 @@
|
|
105
110
|
"workspaces": {
|
106
111
|
"description": "Whether to use package manager workspaces.",
|
107
112
|
"type": "boolean",
|
108
|
-
"default":
|
113
|
+
"default": true
|
109
114
|
}
|
110
115
|
},
|
111
116
|
"additionalProperties": true
|
@@ -70,6 +70,8 @@ async function createPreset(tree, options) {
|
|
70
70
|
unitTestRunner: options.unitTestRunner ??
|
71
71
|
(options.bundler === 'vite' ? 'vitest' : 'jest'),
|
72
72
|
addPlugin,
|
73
|
+
routing: options.routing,
|
74
|
+
useReactRouter: options.useReactRouter,
|
73
75
|
nxCloudToken: options.nxCloudToken,
|
74
76
|
useTsSolution: options.workspaces,
|
75
77
|
formatter: options.formatter,
|
@@ -87,6 +89,8 @@ async function createPreset(tree, options) {
|
|
87
89
|
linter: options.linter,
|
88
90
|
rootProject: true,
|
89
91
|
bundler,
|
92
|
+
routing: options.routing,
|
93
|
+
useReactRouter: options.useReactRouter,
|
90
94
|
e2eTestRunner: options.e2eTestRunner ?? 'playwright',
|
91
95
|
unitTestRunner: options.unitTestRunner ?? (bundler === 'vite' ? 'vitest' : 'jest'),
|
92
96
|
addPlugin,
|
@@ -94,37 +98,6 @@ async function createPreset(tree, options) {
|
|
94
98
|
formatter: options.formatter,
|
95
99
|
});
|
96
100
|
}
|
97
|
-
else if (options.preset === presets_1.Preset.RemixMonorepo) {
|
98
|
-
const { applicationGenerator: remixApplicationGenerator } = require('@nx' +
|
99
|
-
'/remix/generators');
|
100
|
-
return remixApplicationGenerator(tree, {
|
101
|
-
name: options.name,
|
102
|
-
directory: (0, path_1.join)('apps', options.name),
|
103
|
-
linter: options.linter,
|
104
|
-
e2eTestRunner: options.e2eTestRunner ?? 'playwright',
|
105
|
-
unitTestRunner: options.unitTestRunner ?? 'vitest',
|
106
|
-
addPlugin,
|
107
|
-
nxCloudToken: options.nxCloudToken,
|
108
|
-
useTsSolution: options.workspaces,
|
109
|
-
formatter: options.formatter,
|
110
|
-
useProjectJson: !options.workspaces,
|
111
|
-
});
|
112
|
-
}
|
113
|
-
else if (options.preset === presets_1.Preset.RemixStandalone) {
|
114
|
-
const { applicationGenerator: remixApplicationGenerator } = require('@nx' +
|
115
|
-
'/remix/generators');
|
116
|
-
return remixApplicationGenerator(tree, {
|
117
|
-
name: options.name,
|
118
|
-
directory: '.',
|
119
|
-
linter: options.linter,
|
120
|
-
e2eTestRunner: options.e2eTestRunner ?? 'playwright',
|
121
|
-
rootProject: true,
|
122
|
-
unitTestRunner: options.unitTestRunner ?? 'vitest',
|
123
|
-
addPlugin,
|
124
|
-
nxCloudToken: options.nxCloudToken,
|
125
|
-
formatter: options.formatter,
|
126
|
-
});
|
127
|
-
}
|
128
101
|
else if (options.preset === presets_1.Preset.VueMonorepo) {
|
129
102
|
const { applicationGenerator: vueApplicationGenerator } = require('@nx' +
|
130
103
|
'/vue');
|
@@ -303,8 +276,7 @@ async function createPreset(tree, options) {
|
|
303
276
|
const { initGenerator } = require('@nx' + '/js');
|
304
277
|
return initGenerator(tree, {
|
305
278
|
formatter: options.formatter,
|
306
|
-
addTsPlugin: process.env.NX_ADD_PLUGINS !== 'false' &&
|
307
|
-
process.env.NX_ADD_TS_PLUGIN !== 'false',
|
279
|
+
addTsPlugin: process.env.NX_ADD_PLUGINS !== 'false' && options.workspaces,
|
308
280
|
});
|
309
281
|
}
|
310
282
|
else if (options.preset === presets_1.Preset.TsStandalone) {
|
@@ -16,6 +16,7 @@ export interface Schema {
|
|
16
16
|
nextAppDir?: boolean;
|
17
17
|
nextSrcDir?: boolean;
|
18
18
|
routing?: boolean;
|
19
|
+
useReactRouter?: boolean;
|
19
20
|
standaloneApi?: boolean;
|
20
21
|
unitTestRunner?: 'jest' | 'vitest' | 'none';
|
21
22
|
e2eTestRunner?: 'cypress' | 'playwright' | 'jest' | 'detox' | 'none';
|
@@ -25,6 +25,11 @@
|
|
25
25
|
"type": "boolean",
|
26
26
|
"default": true
|
27
27
|
},
|
28
|
+
"useReactRouter": {
|
29
|
+
"description": "Use React Router for routing.",
|
30
|
+
"type": "boolean",
|
31
|
+
"default": false
|
32
|
+
},
|
28
33
|
"style": {
|
29
34
|
"description": "The file extension to be used for style files.",
|
30
35
|
"type": "string",
|
@@ -122,7 +127,7 @@
|
|
122
127
|
"workspaces": {
|
123
128
|
"description": "Whether to use package manager workspaces.",
|
124
129
|
"type": "boolean",
|
125
|
-
"default":
|
130
|
+
"default": true
|
126
131
|
}
|
127
132
|
},
|
128
133
|
"required": ["preset", "name"]
|
@@ -8,8 +8,6 @@ export declare enum Preset {
|
|
8
8
|
ReactMonorepo = "react-monorepo",
|
9
9
|
ReactStandalone = "react-standalone",
|
10
10
|
NextJsStandalone = "nextjs-standalone",
|
11
|
-
RemixMonorepo = "remix-monorepo",
|
12
|
-
RemixStandalone = "remix-standalone",
|
13
11
|
ReactNative = "react-native",
|
14
12
|
VueMonorepo = "vue-monorepo",
|
15
13
|
VueStandalone = "vue-standalone",
|
@@ -12,8 +12,6 @@ var Preset;
|
|
12
12
|
Preset["ReactMonorepo"] = "react-monorepo";
|
13
13
|
Preset["ReactStandalone"] = "react-standalone";
|
14
14
|
Preset["NextJsStandalone"] = "nextjs-standalone";
|
15
|
-
Preset["RemixMonorepo"] = "remix-monorepo";
|
16
|
-
Preset["RemixStandalone"] = "remix-standalone";
|
17
15
|
Preset["ReactNative"] = "react-native";
|
18
16
|
Preset["VueMonorepo"] = "vue-monorepo";
|
19
17
|
Preset["VueStandalone"] = "vue-standalone";
|