@@ -116,14 +116,15 @@ export function getNextSteps(options: {
116116dir : string
117117shell : boolean
118118installFailure ?: unknown
119+ installSkipped ?: boolean
119120recoveryCommands : string [ ]
120121packageManager : PackageManagerName
121122} ) : string [ ] {
122- const { dir, shell, installFailure, recoveryCommands, packageManager } = options
123+ const { dir, shell, installFailure, installSkipped , recoveryCommands, packageManager } = options
123124const runCmd = packageManager === 'deno' ? 'task' : 'run'
124125return [
125126! shell && dir !== '.' && `cd ${ dir } ` ,
126- installFailure && `${ packageManager } install` ,
127+ ( installFailure || installSkipped ) && `${ packageManager } install` ,
127128 ...recoveryCommands ,
128129`${ packageManager } ${ runCmd } dev` ,
129130] . filter ( ( step ) : step is string => typeof step === 'string' )
@@ -459,7 +460,7 @@ export default defineCommand({
459460}
460461
461462const nightlyNuxtPackageJsonVersion = `npm:nuxt-nightly@${ nightlyChannelVersion } `
462- const packageJsonPath = resolve ( cwd , dir )
463+ const packageJsonPath = join ( template . dir , 'package.json' )
463464
464465const packageJson = await readPackageJSON ( packageJsonPath )
465466
@@ -470,7 +471,7 @@ export default defineCommand({
470471packageJson . devDependencies . nuxt = nightlyNuxtPackageJsonVersion
471472}
472473
473- await writePackageJSON ( join ( packageJsonPath , 'package.json' ) , packageJson )
474+ await writePackageJSON ( packageJsonPath , packageJson )
474475nightlySpinner . stop ( `Updated to nightly version ${ styleText ( 'cyan' , nightlyChannelVersion ) } ` )
475476}
476477
@@ -599,20 +600,6 @@ export default defineCommand({
599600
600601installLog . finish ( result )
601602
602- if ( gitInit ) {
603- const gitSpinner = spinner ( )
604- gitSpinner . start ( 'Initializing git repository' )
605-
606- const git = await x ( 'git' , [ 'init' , template . dir ] , { throwOnError : false } )
607- if ( git . exitCode === 0 ) {
608- gitSpinner . stop ( 'Git repository initialized' )
609- }
610- else {
611- gitSpinner . error ( 'Git initialization failed' )
612- logger . message ( git . stderr . trim ( ) . split ( '\n' ) , { symbol : styleText ( 'gray' , S_BAR ) } )
613- }
614- }
615-
616603// `approve-builds` is a pnpm command, so only pnpm gets the offer even if
617604// another package manager ever prints the same notice.
618605if ( ignoredBuilds . length > 0 && selectedPackageManager === 'pnpm' ) {
@@ -634,6 +621,23 @@ export default defineCommand({
634621}
635622}
636623
624+ if ( gitInit ) {
625+ const gitSpinner = spinner ( )
626+ gitSpinner . start ( 'Initializing git repository' )
627+
628+ const git = await x ( 'git' , [ 'init' ] , {
629+ throwOnError : false ,
630+ nodeOptions : { cwd : template . dir } ,
631+ } )
632+ if ( git . exitCode === 0 ) {
633+ gitSpinner . stop ( 'Git repository initialized' )
634+ }
635+ else {
636+ gitSpinner . error ( 'Git initialization failed' )
637+ logger . message ( git . stderr . trim ( ) . split ( '\n' ) , { symbol : styleText ( 'gray' , S_BAR ) } )
638+ }
639+ }
640+
637641const modulesToAdd : string [ ] = [ ]
638642// `ctx.args.modules` is `false` when --no-modules is used and `undefined`
639643// when the user has not decided either way.
@@ -731,7 +735,7 @@ export default defineCommand({
731735if ( modulesToAdd . length > 0 ) {
732736const args : string [ ] = [
733737 ...modulesToAdd ,
734- `--cwd=${ templateDownloadPath } ` ,
738+ `--cwd=${ template . dir } ` ,
735739installRequested && ! skipInstallOnConflict ? '' : '--skipInstall' ,
736740`--packageManager=${ selectedPackageManager } ` ,
737741ctx . args . logLevel ? `--logLevel=${ ctx . args . logLevel } ` : '' ,
@@ -777,6 +781,7 @@ export default defineCommand({
777781dir : projectDir ,
778782shell : ! ! ctx . args . shell ,
779783 installFailure,
784+ installSkipped : ! installRequested && ! skipInstallOnConflict ,
780785 recoveryCommands,
781786packageManager : selectedPackageManager ,
782787} )
0 commit comments