From 6116460694f396a6cff2da051477f0b80a11addf Mon Sep 17 00:00:00 2001 From: Katerina Skroumpelou Date: Tue, 24 Jan 2023 15:19:03 +0200 Subject: [PATCH] fix(bundling): react-standalone take into account bundler (#14573) --- .../src/create-nx-workspace.test.ts | 19 ++++++++++++++++++- .../bin/create-nx-workspace.ts | 2 ++ .../src/generators/new/generate-preset.ts | 1 + packages/workspace/src/generators/new/new.ts | 1 + .../workspace/src/generators/preset/preset.ts | 2 +- 5 files changed, 23 insertions(+), 2 deletions(-) diff --git a/e2e/workspace-create/src/create-nx-workspace.test.ts b/e2e/workspace-create/src/create-nx-workspace.test.ts index 65980b3fe5536..7f7c4d11cb443 100644 --- a/e2e/workspace-create/src/create-nx-workspace.test.ts +++ b/e2e/workspace-create/src/create-nx-workspace.test.ts @@ -32,7 +32,7 @@ describe('create-nx-workspace', () => { checkFilesExist('project.json'); }); - it('should create a workspace with a single react app at the root', () => { + it('should create a workspace with a single react app with vite at the root', () => { const wsName = uniq('react'); runCreateWorkspace(wsName, { @@ -45,6 +45,23 @@ describe('create-nx-workspace', () => { checkFilesExist('package.json'); checkFilesExist('project.json'); + checkFilesExist('vite.config.ts'); + }); + + it('should create a workspace with a single react app with webpack at the root', () => { + const wsName = uniq('react'); + + runCreateWorkspace(wsName, { + preset: 'react-standalone', + appName: wsName, + style: 'css', + packageManager, + bundler: 'webpack', + }); + + checkFilesExist('package.json'); + checkFilesExist('project.json'); + checkFilesExist('webpack.config.js'); }); it('should be able to create an empty workspace built for apps', () => { diff --git a/packages/create-nx-workspace/bin/create-nx-workspace.ts b/packages/create-nx-workspace/bin/create-nx-workspace.ts index 2c7e9ae8f9382..7ef61446c61a5 100644 --- a/packages/create-nx-workspace/bin/create-nx-workspace.ts +++ b/packages/create-nx-workspace/bin/create-nx-workspace.ts @@ -241,6 +241,7 @@ async function main(parsedArgs: yargs.Arguments) { skipGit, commit, framework, + bundler, } = parsedArgs; output.log({ @@ -266,6 +267,7 @@ async function main(parsedArgs: yargs.Arguments) { nxCloud, defaultBase, framework, + bundler, } ); diff --git a/packages/workspace/src/generators/new/generate-preset.ts b/packages/workspace/src/generators/new/generate-preset.ts index f00c6781f00b6..598746384d7c8 100644 --- a/packages/workspace/src/generators/new/generate-preset.ts +++ b/packages/workspace/src/generators/new/generate-preset.ts @@ -73,6 +73,7 @@ export function generatePreset(host: Tree, opts: NormalizedSchema) { opts.linter ? `--linter=${opts.linter}` : null, opts.npmScope ? `--npmScope=${opts.npmScope}` : `--npmScope=${opts.name}`, opts.preset ? `--preset=${opts.preset}` : null, + opts.bundler ? `--bundler=${opts.bundler}` : null, opts.framework ? `--framework=${opts.framework}` : null, opts.packageManager ? `--packageManager=${opts.packageManager}` : null, parsedArgs.interactive ? '--interactive=true' : '--interactive=false', diff --git a/packages/workspace/src/generators/new/new.ts b/packages/workspace/src/generators/new/new.ts index 171a5dc8cd357..b72be8810fafb 100644 --- a/packages/workspace/src/generators/new/new.ts +++ b/packages/workspace/src/generators/new/new.ts @@ -25,6 +25,7 @@ interface Schema { defaultBase: string; framework?: string; linter?: Linter; + bundler?: 'vite' | 'webpack'; packageManager?: PackageManager; } diff --git a/packages/workspace/src/generators/preset/preset.ts b/packages/workspace/src/generators/preset/preset.ts index 0b741078e3eff..cb0a52454d42a 100644 --- a/packages/workspace/src/generators/preset/preset.ts +++ b/packages/workspace/src/generators/preset/preset.ts @@ -67,7 +67,7 @@ async function createPreset(tree: Tree, options: Schema) { rootProject: true, bundler: options.bundler ?? 'vite', e2eTestRunner: 'cypress', - unitTestRunner: 'vitest', + unitTestRunner: options.bundler === 'vite' ? 'vitest' : 'jest', }); } else if (options.preset === Preset.NextJs) { const { applicationGenerator: nextApplicationGenerator } = require('@nrwl' +