1
1
import { join } from 'path' ;
2
- import { webpackProjectGenerator } from '@nrwl/webpack' ;
3
2
import { cypressProjectGenerator } from '@nrwl/cypress' ;
4
3
import {
5
4
addDependenciesToPackageJson ,
6
5
addProjectConfiguration ,
7
6
convertNxGenerator ,
7
+ ensurePackage ,
8
8
extractLayoutDirectory ,
9
9
formatFiles ,
10
10
generateFiles ,
@@ -25,9 +25,8 @@ import { swcCoreVersion } from '@nrwl/js/src/utils/versions';
25
25
import { Linter , lintProjectGenerator } from '@nrwl/linter' ;
26
26
import { runTasksInSerial } from '@nrwl/workspace/src/utilities/run-tasks-in-serial' ;
27
27
import { getRelativePathToRootTsConfig } from '@nrwl/workspace/src/utilities/typescript' ;
28
- import { viteConfigurationGenerator , vitestGenerator } from '@nrwl/vite' ;
29
28
30
- import { swcLoaderVersion } from '../../utils/versions' ;
29
+ import { nxVersion , swcLoaderVersion } from '../../utils/versions' ;
31
30
import { webInitGenerator } from '../init/init' ;
32
31
import { Schema } from './schema' ;
33
32
@@ -75,6 +74,8 @@ async function setupBundler(tree: Tree, options: NormalizedSchema) {
75
74
] ;
76
75
77
76
if ( options . bundler === 'webpack' ) {
77
+ await ensurePackage ( tree , '@nrwl/webpack' , nxVersion ) ;
78
+ const { webpackProjectGenerator } = require ( '@nrwl/webpack' ) ;
78
79
await webpackProjectGenerator ( tree , {
79
80
project : options . projectName ,
80
81
main,
@@ -194,6 +195,8 @@ export async function applicationGenerator(host: Tree, schema: Schema) {
194
195
await addProject ( host , options ) ;
195
196
196
197
if ( options . bundler === 'vite' ) {
198
+ await ensurePackage ( host , '@nrwl/vite' , nxVersion ) ;
199
+ const { viteConfigurationGenerator } = require ( '@nrwl/vite' ) ;
197
200
// We recommend users use `import.meta.env.MODE` and other variables in their code to differentiate between production and development.
198
201
// See: https://vitejs.dev/guide/env-and-mode.html
199
202
host . delete ( joinPathFragments ( options . appProjectRoot , 'src/environments' ) ) ;
@@ -209,6 +212,8 @@ export async function applicationGenerator(host: Tree, schema: Schema) {
209
212
}
210
213
211
214
if ( options . bundler !== 'vite' && options . unitTestRunner === 'vitest' ) {
215
+ await ensurePackage ( host , '@nrwl/vite' , nxVersion ) ;
216
+ const { vitestGenerator } = require ( '@nrwl/vite' ) ;
212
217
const vitestTask = await vitestGenerator ( host , {
213
218
uiFramework : 'none' ,
214
219
project : options . projectName ,
0 commit comments