create-nx-workspace 17.2.5 → 17.2.6
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/README.md +3 -8
- package/bin/create-nx-workspace.d.ts +8 -2
- package/bin/create-nx-workspace.js +71 -49
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
<p style="text-align: center;">
|
|
2
|
-
<picture>
|
|
3
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-dark.svg">
|
|
4
|
-
<img alt="Nx - Smart Monorepos · Fast CI" src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-light.svg" width="100%">
|
|
5
|
-
</picture>
|
|
6
|
-
</p>
|
|
1
|
+
<p style="text-align: center;"><img src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx.png" width="600" alt="Nx - Smart, Fast and Extensible Build System"></p>
|
|
7
2
|
|
|
8
3
|
<div style="text-align: center;">
|
|
9
4
|
|
|
@@ -22,7 +17,7 @@
|
|
|
22
17
|
|
|
23
18
|
# `> npx create-nx-workspace`
|
|
24
19
|
|
|
25
|
-
Nx is a build system with
|
|
20
|
+
Nx is a next generation build system with first class monorepo support and powerful integrations.
|
|
26
21
|
|
|
27
22
|
{{getting-started}}
|
|
28
23
|
|
|
@@ -68,5 +63,5 @@ npx nx@latest init
|
|
|
68
63
|
- [Blog Posts About Nx](https://blog.nrwl.io/nx/home)
|
|
69
64
|
|
|
70
65
|
<p style="text-align: center;"><a href="https://nx.dev/#learning-materials" target="_blank" rel="noreferrer"><img src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-courses-and-videos.svg"
|
|
71
|
-
width="100%" alt="Nx - Smart
|
|
66
|
+
width="100%" alt="Nx - Smart, Fast and Extensible Build System"></a></p>
|
|
72
67
|
|
|
@@ -35,7 +35,13 @@ interface VueArguments extends BaseArguments {
|
|
|
35
35
|
stack: 'vue';
|
|
36
36
|
workspaceType: 'standalone' | 'integrated';
|
|
37
37
|
appName: string;
|
|
38
|
-
|
|
38
|
+
style: string;
|
|
39
|
+
e2eTestRunner: 'none' | 'cypress' | 'playwright';
|
|
40
|
+
}
|
|
41
|
+
interface NuxtArguments extends BaseArguments {
|
|
42
|
+
stack: 'nuxt';
|
|
43
|
+
workspaceType: 'standalone' | 'integrated';
|
|
44
|
+
appName: string;
|
|
39
45
|
style: string;
|
|
40
46
|
e2eTestRunner: 'none' | 'cypress' | 'playwright';
|
|
41
47
|
}
|
|
@@ -49,6 +55,6 @@ interface NodeArguments extends BaseArguments {
|
|
|
49
55
|
interface UnknownStackArguments extends BaseArguments {
|
|
50
56
|
stack: 'unknown';
|
|
51
57
|
}
|
|
52
|
-
type Arguments = NoneArguments | ReactArguments | AngularArguments | VueArguments | NodeArguments | UnknownStackArguments;
|
|
58
|
+
type Arguments = NoneArguments | ReactArguments | AngularArguments | VueArguments | NuxtArguments | NodeArguments | UnknownStackArguments;
|
|
53
59
|
export declare const commandsObject: yargs.Argv<Arguments>;
|
|
54
60
|
export {};
|
|
@@ -32,6 +32,8 @@ exports.commandsObject = yargs
|
|
|
32
32
|
})
|
|
33
33
|
.option('preset', {
|
|
34
34
|
describe: chalk.dim `Customizes the initial content of your workspace. Default presets include: [${Object.values(preset_1.Preset)
|
|
35
|
+
// TODO(katerina): Remove this option when @nx/nuxt is released.
|
|
36
|
+
.filter((p) => p !== preset_1.Preset.NuxtStandalone && p !== preset_1.Preset.Nuxt)
|
|
35
37
|
.map((p) => `"${p}"`)
|
|
36
38
|
.join(', ')}]. To build your own see https://nx.dev/extending-nx/recipes/create-preset`,
|
|
37
39
|
type: 'string',
|
|
@@ -247,9 +249,10 @@ async function determineStack(parsedArgs) {
|
|
|
247
249
|
return 'react';
|
|
248
250
|
case preset_1.Preset.VueStandalone:
|
|
249
251
|
case preset_1.Preset.VueMonorepo:
|
|
250
|
-
case preset_1.Preset.Nuxt:
|
|
251
|
-
case preset_1.Preset.NuxtStandalone:
|
|
252
252
|
return 'vue';
|
|
253
|
+
case preset_1.Preset.NuxtStandalone:
|
|
254
|
+
case preset_1.Preset.Nuxt:
|
|
255
|
+
return 'nuxt';
|
|
253
256
|
case preset_1.Preset.Nest:
|
|
254
257
|
case preset_1.Preset.NodeStandalone:
|
|
255
258
|
case preset_1.Preset.Express:
|
|
@@ -282,7 +285,7 @@ async function determineStack(parsedArgs) {
|
|
|
282
285
|
},
|
|
283
286
|
{
|
|
284
287
|
name: `vue`,
|
|
285
|
-
message: `Vue: Configures a Vue application with
|
|
288
|
+
message: `Vue: Configures a Vue application with modern tooling.`,
|
|
286
289
|
},
|
|
287
290
|
{
|
|
288
291
|
name: `angular`,
|
|
@@ -307,6 +310,8 @@ async function determinePresetOptions(parsedArgs) {
|
|
|
307
310
|
return determineAngularOptions(parsedArgs);
|
|
308
311
|
case 'vue':
|
|
309
312
|
return determineVueOptions(parsedArgs);
|
|
313
|
+
case 'nuxt':
|
|
314
|
+
return determineNuxtOptions(parsedArgs);
|
|
310
315
|
case 'node':
|
|
311
316
|
return determineNodeOptions(parsedArgs);
|
|
312
317
|
default:
|
|
@@ -472,39 +477,80 @@ async function determineVueOptions(parsedArgs) {
|
|
|
472
477
|
let e2eTestRunner = undefined;
|
|
473
478
|
if (parsedArgs.preset) {
|
|
474
479
|
preset = parsedArgs.preset;
|
|
475
|
-
if (preset === preset_1.Preset.VueStandalone || preset === preset_1.Preset.NuxtStandalone) {
|
|
476
|
-
appName = parsedArgs.appName ?? parsedArgs.name;
|
|
477
|
-
}
|
|
478
|
-
else {
|
|
479
|
-
appName = await determineAppName(parsedArgs);
|
|
480
|
-
}
|
|
481
480
|
}
|
|
482
481
|
else {
|
|
483
482
|
const workspaceType = await determineStandaloneOrMonorepo();
|
|
484
483
|
if (workspaceType === 'standalone') {
|
|
485
|
-
|
|
484
|
+
preset = preset_1.Preset.VueStandalone;
|
|
486
485
|
}
|
|
487
486
|
else {
|
|
488
|
-
|
|
487
|
+
preset = preset_1.Preset.VueMonorepo;
|
|
489
488
|
}
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
489
|
+
}
|
|
490
|
+
if (preset === preset_1.Preset.VueStandalone) {
|
|
491
|
+
appName = parsedArgs.appName ?? parsedArgs.name;
|
|
492
|
+
}
|
|
493
|
+
else {
|
|
494
|
+
appName = await determineAppName(parsedArgs);
|
|
495
|
+
}
|
|
496
|
+
e2eTestRunner = await determineE2eTestRunner(parsedArgs);
|
|
497
|
+
if (parsedArgs.style) {
|
|
498
|
+
style = parsedArgs.style;
|
|
499
|
+
}
|
|
500
|
+
else {
|
|
501
|
+
const reply = await enquirer.prompt([
|
|
502
|
+
{
|
|
503
|
+
name: 'style',
|
|
504
|
+
message: `Default stylesheet format`,
|
|
505
|
+
initial: 'css',
|
|
506
|
+
type: 'autocomplete',
|
|
507
|
+
choices: [
|
|
508
|
+
{
|
|
509
|
+
name: 'css',
|
|
510
|
+
message: 'CSS',
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
name: 'scss',
|
|
514
|
+
message: 'SASS(.scss) [ http://sass-lang.com ]',
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
name: 'less',
|
|
518
|
+
message: 'LESS [ http://lesscss.org ]',
|
|
519
|
+
},
|
|
520
|
+
{
|
|
521
|
+
name: 'none',
|
|
522
|
+
message: 'None',
|
|
523
|
+
},
|
|
524
|
+
],
|
|
525
|
+
},
|
|
526
|
+
]);
|
|
527
|
+
style = reply.style;
|
|
528
|
+
}
|
|
529
|
+
return { preset, style, appName, e2eTestRunner };
|
|
530
|
+
}
|
|
531
|
+
async function determineNuxtOptions(parsedArgs) {
|
|
532
|
+
let preset;
|
|
533
|
+
let style = undefined;
|
|
534
|
+
let appName;
|
|
535
|
+
let e2eTestRunner = undefined;
|
|
536
|
+
if (parsedArgs.preset) {
|
|
537
|
+
preset = parsedArgs.preset;
|
|
538
|
+
}
|
|
539
|
+
else {
|
|
540
|
+
const workspaceType = await determineStandaloneOrMonorepo();
|
|
541
|
+
if (workspaceType === 'standalone') {
|
|
542
|
+
preset = preset_1.Preset.NuxtStandalone;
|
|
498
543
|
}
|
|
499
544
|
else {
|
|
500
|
-
|
|
501
|
-
preset = preset_1.Preset.VueStandalone;
|
|
502
|
-
}
|
|
503
|
-
else {
|
|
504
|
-
preset = preset_1.Preset.VueMonorepo;
|
|
505
|
-
}
|
|
545
|
+
preset = preset_1.Preset.Nuxt;
|
|
506
546
|
}
|
|
507
547
|
}
|
|
548
|
+
if (preset === preset_1.Preset.NuxtStandalone) {
|
|
549
|
+
appName = parsedArgs.appName ?? parsedArgs.name;
|
|
550
|
+
}
|
|
551
|
+
else {
|
|
552
|
+
appName = await determineAppName(parsedArgs);
|
|
553
|
+
}
|
|
508
554
|
e2eTestRunner = await determineE2eTestRunner(parsedArgs);
|
|
509
555
|
if (parsedArgs.style) {
|
|
510
556
|
style = parsedArgs.style;
|
|
@@ -864,30 +910,6 @@ async function determineNextAppDir(parsedArgs) {
|
|
|
864
910
|
]);
|
|
865
911
|
return reply.nextAppDir === 'Yes';
|
|
866
912
|
}
|
|
867
|
-
async function determineVueFramework(parsedArgs) {
|
|
868
|
-
if (!!parsedArgs.framework)
|
|
869
|
-
return parsedArgs.framework;
|
|
870
|
-
const reply = await enquirer.prompt([
|
|
871
|
-
{
|
|
872
|
-
name: 'framework',
|
|
873
|
-
message: 'What framework would you like to use?',
|
|
874
|
-
type: 'autocomplete',
|
|
875
|
-
choices: [
|
|
876
|
-
{
|
|
877
|
-
name: 'none',
|
|
878
|
-
message: 'None',
|
|
879
|
-
hint: ' I only want vue',
|
|
880
|
-
},
|
|
881
|
-
{
|
|
882
|
-
name: 'nuxt',
|
|
883
|
-
message: 'Nuxt [ https://nuxt.com/ ]',
|
|
884
|
-
},
|
|
885
|
-
],
|
|
886
|
-
initial: 'none',
|
|
887
|
-
},
|
|
888
|
-
]);
|
|
889
|
-
return reply.framework;
|
|
890
|
-
}
|
|
891
913
|
async function determineNodeFramework(parsedArgs) {
|
|
892
914
|
if (parsedArgs.framework)
|
|
893
915
|
return parsedArgs.framework;
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-nx-workspace",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "17.2.6",
|
|
4
4
|
"private": false,
|
|
5
|
-
"description": "Smart
|
|
5
|
+
"description": "Smart, Fast and Extensible Build System",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/nrwl/nx.git",
|