@nx/workspace 20.4.0-canary.20250124-45847a6 → 20.4.0-rc.0

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/workspace",
3
- "version": "20.4.0-canary.20250124-45847a6",
3
+ "version": "20.4.0-rc.0",
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,12 +38,12 @@
38
38
  }
39
39
  },
40
40
  "dependencies": {
41
- "@nx/devkit": "20.4.0-canary.20250124-45847a6",
41
+ "@nx/devkit": "20.4.0-rc.0",
42
42
  "chalk": "^4.1.0",
43
43
  "enquirer": "~2.3.6",
44
44
  "tslib": "^2.3.0",
45
45
  "yargs-parser": "21.1.1",
46
- "nx": "20.4.0-canary.20250124-45847a6"
46
+ "nx": "20.4.0-rc.0"
47
47
  },
48
48
  "publishConfig": {
49
49
  "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.unitTestRunner !== undefined
74
+ ? `--unitTestRunner=${opts.unitTestRunner}`
75
+ : null,
73
76
  opts.e2eTestRunner !== undefined
74
77
  ? `--e2eTestRunner=${opts.e2eTestRunner}`
75
78
  : null,
@@ -18,6 +18,7 @@ interface Schema {
18
18
  standaloneApi?: boolean;
19
19
  routing?: boolean;
20
20
  packageManager?: PackageManager;
21
+ unitTestRunner?: 'jest' | 'vitest' | 'none';
21
22
  e2eTestRunner?: 'cypress' | 'playwright' | 'detox' | 'jest' | 'none';
22
23
  ssr?: boolean;
23
24
  serverRouting?: boolean;
@@ -73,6 +73,11 @@
73
73
  "type": "boolean",
74
74
  "default": true
75
75
  },
76
+ "unitTestRunner": {
77
+ "description": "The tool to use for running unit tests.",
78
+ "type": "string",
79
+ "enum": ["jest", "vitest", "none"]
80
+ },
76
81
  "e2eTestRunner": {
77
82
  "description": "The tool to use for running e2e tests.",
78
83
  "type": "string",
@@ -30,6 +30,7 @@ async function createPreset(tree, options) {
30
30
  standalone: options.standaloneApi,
31
31
  routing: options.routing,
32
32
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
33
+ unitTestRunner: options.unitTestRunner,
33
34
  bundler: options.bundler,
34
35
  ssr: options.ssr,
35
36
  serverRouting: options.serverRouting,
@@ -48,6 +49,7 @@ async function createPreset(tree, options) {
48
49
  rootProject: true,
49
50
  standalone: options.standaloneApi,
50
51
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
52
+ unitTestRunner: options.unitTestRunner,
51
53
  bundler: options.bundler,
52
54
  ssr: options.ssr,
53
55
  serverRouting: options.serverRouting,
@@ -65,6 +67,8 @@ async function createPreset(tree, options) {
65
67
  linter: options.linter,
66
68
  bundler: options.bundler ?? 'webpack',
67
69
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
70
+ unitTestRunner: options.unitTestRunner ??
71
+ (options.bundler === 'vite' ? 'vitest' : 'jest'),
68
72
  addPlugin,
69
73
  nxCloudToken: options.nxCloudToken,
70
74
  useTsSolution: options.workspaces,
@@ -74,15 +78,16 @@ async function createPreset(tree, options) {
74
78
  else if (options.preset === presets_1.Preset.ReactStandalone) {
75
79
  const { applicationGenerator: reactApplicationGenerator } = require('@nx' +
76
80
  '/react');
81
+ const bundler = options.bundler ?? 'vite';
77
82
  return reactApplicationGenerator(tree, {
78
83
  name: options.name,
79
84
  directory: '.',
80
85
  style: options.style,
81
86
  linter: options.linter,
82
87
  rootProject: true,
83
- bundler: options.bundler ?? 'vite',
88
+ bundler,
84
89
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
85
- unitTestRunner: options.bundler === 'vite' ? 'vitest' : 'jest',
90
+ unitTestRunner: options.unitTestRunner ?? (bundler === 'vite' ? 'vitest' : 'jest'),
86
91
  addPlugin,
87
92
  nxCloudToken: options.nxCloudToken,
88
93
  formatter: options.formatter,
@@ -96,7 +101,7 @@ async function createPreset(tree, options) {
96
101
  directory: (0, path_1.join)('apps', options.name),
97
102
  linter: options.linter,
98
103
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
99
- unitTestRunner: 'vitest',
104
+ unitTestRunner: options.unitTestRunner ?? 'vitest',
100
105
  addPlugin,
101
106
  nxCloudToken: options.nxCloudToken,
102
107
  useTsSolution: options.workspaces,
@@ -112,7 +117,7 @@ async function createPreset(tree, options) {
112
117
  linter: options.linter,
113
118
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
114
119
  rootProject: true,
115
- unitTestRunner: 'vitest',
120
+ unitTestRunner: options.unitTestRunner ?? 'vitest',
116
121
  addPlugin,
117
122
  nxCloudToken: options.nxCloudToken,
118
123
  formatter: options.formatter,
@@ -127,6 +132,7 @@ async function createPreset(tree, options) {
127
132
  style: options.style,
128
133
  linter: options.linter,
129
134
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
135
+ unitTestRunner: options.unitTestRunner,
130
136
  addPlugin,
131
137
  nxCloudToken: options.nxCloudToken,
132
138
  useTsSolution: options.workspaces,
@@ -143,7 +149,7 @@ async function createPreset(tree, options) {
143
149
  linter: options.linter,
144
150
  rootProject: true,
145
151
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
146
- unitTestRunner: 'vitest',
152
+ unitTestRunner: options.unitTestRunner ?? 'vitest',
147
153
  addPlugin,
148
154
  nxCloudToken: options.nxCloudToken,
149
155
  });
@@ -157,6 +163,7 @@ async function createPreset(tree, options) {
157
163
  style: options.style,
158
164
  linter: options.linter,
159
165
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
166
+ unitTestRunner: options.unitTestRunner,
160
167
  addPlugin,
161
168
  nxCloudToken: options.nxCloudToken,
162
169
  useTsSolution: options.workspaces,
@@ -173,7 +180,7 @@ async function createPreset(tree, options) {
173
180
  linter: options.linter,
174
181
  rootProject: true,
175
182
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
176
- unitTestRunner: 'vitest',
183
+ unitTestRunner: options.unitTestRunner ?? 'vitest',
177
184
  addPlugin,
178
185
  nxCloudToken: options.nxCloudToken,
179
186
  });
@@ -189,6 +196,7 @@ async function createPreset(tree, options) {
189
196
  appDir: options.nextAppDir,
190
197
  src: options.nextSrcDir,
191
198
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
199
+ unitTestRunner: options.unitTestRunner,
192
200
  addPlugin,
193
201
  useTsSolution: options.workspaces,
194
202
  formatter: options.formatter,
@@ -205,6 +213,7 @@ async function createPreset(tree, options) {
205
213
  appDir: options.nextAppDir,
206
214
  src: options.nextSrcDir,
207
215
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
216
+ unitTestRunner: options.unitTestRunner,
208
217
  rootProject: true,
209
218
  addPlugin,
210
219
  formatter: options.formatter,
@@ -232,6 +241,7 @@ async function createPreset(tree, options) {
232
241
  directory: (0, path_1.join)('apps', options.name),
233
242
  linter: options.linter,
234
243
  e2eTestRunner: options.e2eTestRunner ?? 'jest',
244
+ unitTestRunner: options.unitTestRunner,
235
245
  addPlugin,
236
246
  useTsSolution: options.workspaces,
237
247
  formatter: options.formatter,
@@ -244,6 +254,7 @@ async function createPreset(tree, options) {
244
254
  directory: (0, path_1.join)('apps', options.name),
245
255
  linter: options.linter,
246
256
  e2eTestRunner: options.e2eTestRunner ?? 'jest',
257
+ unitTestRunner: options.unitTestRunner,
247
258
  addPlugin,
248
259
  useTsSolution: options.workspaces,
249
260
  formatter: options.formatter,
@@ -257,6 +268,7 @@ async function createPreset(tree, options) {
257
268
  directory: (0, path_1.join)('apps', options.name),
258
269
  linter: options.linter,
259
270
  e2eTestRunner: options.e2eTestRunner ?? 'detox',
271
+ unitTestRunner: options.unitTestRunner,
260
272
  addPlugin,
261
273
  nxCloudToken: options.nxCloudToken,
262
274
  bundler: options.bundler ?? 'webpack',
@@ -271,6 +283,7 @@ async function createPreset(tree, options) {
271
283
  directory: (0, path_1.join)('apps', options.name),
272
284
  linter: options.linter,
273
285
  e2eTestRunner: options.e2eTestRunner ?? 'detox',
286
+ unitTestRunner: options.unitTestRunner,
274
287
  addPlugin,
275
288
  nxCloudToken: options.nxCloudToken,
276
289
  useTsSolution: options.workspaces,
@@ -312,6 +325,7 @@ async function createPreset(tree, options) {
312
325
  docker: options.docker,
313
326
  rootProject: true,
314
327
  e2eTestRunner: options.e2eTestRunner ?? 'jest',
328
+ unitTestRunner: options.unitTestRunner,
315
329
  addPlugin,
316
330
  });
317
331
  }
@@ -328,6 +342,7 @@ async function createPreset(tree, options) {
328
342
  docker: options.docker,
329
343
  rootProject: false,
330
344
  e2eTestRunner: options.e2eTestRunner ?? 'jest',
345
+ unitTestRunner: options.unitTestRunner,
331
346
  addPlugin,
332
347
  useTsSolution: options.workspaces,
333
348
  formatter: options.formatter,
@@ -17,6 +17,7 @@ export interface Schema {
17
17
  nextSrcDir?: boolean;
18
18
  routing?: boolean;
19
19
  standaloneApi?: boolean;
20
+ unitTestRunner?: 'jest' | 'vitest' | 'none';
20
21
  e2eTestRunner?: 'cypress' | 'playwright' | 'jest' | 'detox' | 'none';
21
22
  js?: boolean;
22
23
  ssr?: boolean;
@@ -90,6 +90,11 @@
90
90
  "type": "boolean",
91
91
  "default": true
92
92
  },
93
+ "unitTestRunner": {
94
+ "description": "The tool to use for running unit tests.",
95
+ "type": "string",
96
+ "enum": ["jest", "vitest", "none"]
97
+ },
93
98
  "e2eTestRunner": {
94
99
  "description": "The tool to use for running e2e tests.",
95
100
  "type": "string",