diff --git a/docs/content/1.getting-started/2.installation.md b/docs/content/1.getting-started/2.installation.md index 78e2cea61a9..63153014fd2 100644 --- a/docs/content/1.getting-started/2.installation.md +++ b/docs/content/1.getting-started/2.installation.md @@ -74,11 +74,15 @@ npm install ``` ```bash [pnpm] -pnpm install --shamefully-hoist +pnpm install ``` :: +::alert +**Note:** If using **pnpm**, make sure to have `.npmrc` with `shamefully-hoist=true` inside it before `pnpm install`. +:: + ## Development Server Now you'll be able to start your Nuxt app in development mode: diff --git a/packages/nuxi/src/commands/init.ts b/packages/nuxi/src/commands/init.ts index acc6a98e89d..fee448cfea4 100644 --- a/packages/nuxi/src/commands/init.ts +++ b/packages/nuxi/src/commands/init.ts @@ -1,3 +1,4 @@ +import { writeFile } from 'node:fs/promises' import { downloadTemplate, startShell } from 'giget' import { relative } from 'pathe' import consola from 'consola' @@ -27,9 +28,16 @@ export default defineNuxtCommand({ // Show next steps const relativeDist = rpath(t.dir) + + // Write .nuxtrc with `shamefully-hoist=true` for pnpm + const usingPnpm = (process.env.npm_config_user_agent || '').includes('pnpm') + if (usingPnpm) { + await writeFile(`${relativeDist}/.npmrc`, 'shamefully-hoist=true') + } + const nextSteps = [ !args.shell && relativeDist.length > 1 && `\`cd ${relativeDist}\``, - 'Install dependencies with `npm install` or `yarn install` or `pnpm install --shamefully-hoist`', + 'Install dependencies with `npm install` or `yarn install` or `pnpm install`', 'Start development server with `npm run dev` or `yarn dev` or `pnpm run dev`' ].filter(Boolean)