create-nx-workspace 24.0.0-beta.1 → 24.0.0-beta.2

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.
@@ -58,6 +58,7 @@ interface NodeArguments extends BaseArguments {
58
58
  workspaceType: 'standalone' | 'integrated';
59
59
  appName: string;
60
60
  framework: 'none' | 'express' | 'fastify' | 'koa' | 'nest';
61
+ bundler: 'tsc' | 'rolldown' | 'esbuild' | 'webpack';
61
62
  docker: boolean;
62
63
  unitTestRunner: 'none' | 'jest' | 'vitest';
63
64
  }
@@ -1273,6 +1273,7 @@ async function determineNodeOptions(parsedArgs) {
1273
1273
  let preset;
1274
1274
  let appName;
1275
1275
  let framework;
1276
+ let bundler = parsedArgs.bundler;
1276
1277
  let docker;
1277
1278
  let linter;
1278
1279
  let unitTestRunner = undefined;
@@ -1293,9 +1294,13 @@ async function determineNodeOptions(parsedArgs) {
1293
1294
  else {
1294
1295
  framework = 'none';
1295
1296
  }
1297
+ if (preset === preset_1.Preset.NodeMonorepo) {
1298
+ bundler = await determineNodeBundler(parsedArgs, framework);
1299
+ }
1296
1300
  }
1297
1301
  else {
1298
1302
  framework = await determineNodeFramework(parsedArgs);
1303
+ bundler = await determineNodeBundler(parsedArgs, framework);
1299
1304
  const workspaceType = workspaces
1300
1305
  ? 'monorepo'
1301
1306
  : await determineStandaloneOrMonorepo();
@@ -1329,11 +1334,15 @@ async function determineNodeOptions(parsedArgs) {
1329
1334
  // without asking.
1330
1335
  const formatter = await (0, prompts_1.determineFormatterOptions)(parsedArgs);
1331
1336
  linter = await (0, prompts_1.determineLinterOptions)(parsedArgs);
1332
- unitTestRunner = await determineUnitTestRunner(parsedArgs);
1337
+ // Node apps are ESM, which jest loads as CommonJS.
1338
+ unitTestRunner = await determineUnitTestRunner(parsedArgs, {
1339
+ preferVitest: framework !== 'nest',
1340
+ });
1333
1341
  return {
1334
1342
  preset,
1335
1343
  appName,
1336
1344
  framework,
1345
+ bundler,
1337
1346
  docker,
1338
1347
  linter,
1339
1348
  formatter,
@@ -1503,6 +1512,26 @@ async function determineNodeFramework(parsedArgs) {
1503
1512
  };
1504
1513
  return reply.framework;
1505
1514
  }
1515
+ async function determineNodeBundler(parsedArgs, framework) {
1516
+ if (parsedArgs.bundler)
1517
+ return parsedArgs.bundler;
1518
+ // tsc needs a TS solution workspace, fastify autoloads its plugins from disk
1519
+ // and nest has its own build setup, so the generator default applies there.
1520
+ if (!parsedArgs.workspaces ||
1521
+ framework === 'fastify' ||
1522
+ framework === 'nest') {
1523
+ return undefined;
1524
+ }
1525
+ return (0, prompt_helpers_1.selectPrompt)({
1526
+ message: 'How would you like to build your app?',
1527
+ choices: [
1528
+ { value: 'tsc', label: 'tsc (unbundled, dist mirrors src)' },
1529
+ { value: 'rolldown', label: 'Rolldown (bundled)' },
1530
+ ],
1531
+ initial: 'tsc',
1532
+ skip: !parsedArgs.interactive || (0, is_ci_1.isCI)(),
1533
+ });
1534
+ }
1506
1535
  async function determineUnitTestRunner(parsedArgs, options) {
1507
1536
  if (parsedArgs.unitTestRunner) {
1508
1537
  return parsedArgs.unitTestRunner;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-nx-workspace",
3
- "version": "24.0.0-beta.1",
3
+ "version": "24.0.0-beta.2",
4
4
  "private": false,
5
5
  "description": "Smart Monorepos · Fast Builds",
6
6
  "repository": {