Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,22 @@
> test -f tools/vite-plus-generator/package.json && echo 'Created at tools/vite-plus-generator' || echo 'NOT at tools/'
Created at tools/vite-plus-generator

> cd apps/website && vp create --no-interactive --git vite:generator 2>&1 || true # --git is unavailable for monorepo package create
The --git/--no-git options are not available when adding a package to an existing monorepo


> cd apps/website && vp create --no-interactive --no-git vite:generator 2>&1 || true # --no-git is unavailable for monorepo package create
The --git/--no-git options are not available when adding a package to an existing monorepo


> cd apps/website && vp create --no-interactive --git vite:application 2>&1 || true # --git is unavailable for monorepo package create
The --git/--no-git options are not available when adding a package to an existing monorepo


> cd apps/website && vp create --no-interactive --no-git vite:library 2>&1 || true # --no-git is unavailable for monorepo package create
The --git/--no-git options are not available when adding a package to an existing monorepo


> test ! -f apps/website/tools/vite-plus-generator/package.json && echo 'Not in apps/website/' || echo 'BUG: in apps/website/'
Not in apps/website/

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@
"ignoreOutput": true
},
"test -f tools/vite-plus-generator/package.json && echo 'Created at tools/vite-plus-generator' || echo 'NOT at tools/'",
"cd apps/website && vp create --no-interactive --git vite:generator 2>&1 || true # --git is unavailable for monorepo package create",
"cd apps/website && vp create --no-interactive --no-git vite:generator 2>&1 || true # --no-git is unavailable for monorepo package create",
"cd apps/website && vp create --no-interactive --git vite:application 2>&1 || true # --git is unavailable for monorepo package create",
"cd apps/website && vp create --no-interactive --no-git vite:library 2>&1 || true # --no-git is unavailable for monorepo package create",
"test ! -f apps/website/tools/vite-plus-generator/package.json && echo 'Not in apps/website/' || echo 'BUG: in apps/website/'",

{
Expand Down
4 changes: 4 additions & 0 deletions packages/cli/snap-tests-global/new-vite-monorepo/snap.txt
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@ No .yarnrc.yml
> test -d vite-plus-monorepo/.git && echo 'Git initialized' # check git init
Git initialized

> vp create vite:monorepo --interactive --verbose --no-git --no-hooks --no-agent --no-editor --package-manager pnpm --directory verbose-no-git-monorepo # explicit --no-git should skip verbose monorepo git prompt
> test ! -d verbose-no-git-monorepo/.git && echo 'No git initialized for explicit --no-git' || (echo 'ERROR: git initialized' && exit 1) # check verbose --no-git is respected
No git initialized for explicit --no-git

> test -f vite-plus-monorepo/.vscode/settings.json && echo '.vscode/settings.json exists' # check VS Code settings created
.vscode/settings.json exists

Expand Down
5 changes: 5 additions & 0 deletions packages/cli/snap-tests-global/new-vite-monorepo/steps.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@
"test -f vite-plus-monorepo/.gitignore && echo '.gitignore exists' || echo 'ERROR: .gitignore missing' # verify gitignore renamed from _gitignore",
"test ! -f vite-plus-monorepo/.yarnrc.yml && echo 'No .yarnrc.yml' || echo 'ERROR: .yarnrc.yml exists' # verify no yarn config for pnpm",
"test -d vite-plus-monorepo/.git && echo 'Git initialized' # check git init",
{
"command": "vp create vite:monorepo --interactive --verbose --no-git --no-hooks --no-agent --no-editor --package-manager pnpm --directory verbose-no-git-monorepo # explicit --no-git should skip verbose monorepo git prompt",
"ignoreOutput": true
},
"test ! -d verbose-no-git-monorepo/.git && echo 'No git initialized for explicit --no-git' || (echo 'ERROR: git initialized' && exit 1) # check verbose --no-git is respected",
"test -f vite-plus-monorepo/.vscode/settings.json && echo '.vscode/settings.json exists' # check VS Code settings created",
"test -f vite-plus-monorepo/.vscode/extensions.json && echo '.vscode/extensions.json exists' # check VS Code extensions created",
"node -e \"const { spawnSync } = require('node:child_process'); const file = '.vscode/settings.json'; const result = spawnSync('git', ['-C', 'vite-plus-monorepo', 'check-ignore', '--no-index', file], { stdio: 'ignore' }); const status = result.status; if (status === 1) { console.log(file + ' trackable'); } else { console.log(status === 0 ? 'ERROR: ' + file + ' ignored' : 'ERROR: git check-ignore failed with status ' + status); process.exit(status || 1); }\" # check VS Code settings are trackable",
Expand Down
13 changes: 11 additions & 2 deletions packages/cli/src/create/bin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,7 @@ export interface Options {
verbose: boolean;
agent?: string | string[] | false;
editor?: string | false;
git?: boolean;
hooks?: boolean;
packageManager?: string;
}
Expand Down Expand Up @@ -586,6 +587,12 @@ Use \`vp create --list\` to list all available templates, or run \`vp create --h
);
cancelAndExit('Cannot create a generator outside a monorepo', 1);
}
if (isMonorepo && options.git !== undefined) {
cancelAndExit(
'The --git/--no-git options are not available when adding a package to an existing monorepo',
1,
);
}

if (isInSubdirectory && !compactOutput) {
prompts.log.info(`Detected monorepo root at ${accent(workspaceInfoOptional.rootDir)}`);
Expand Down Expand Up @@ -809,7 +816,9 @@ Use \`vp create --list\` to list all available templates, or run \`vp create --h
}));
}

const shouldSetupGit = await promptGitInit(options);
// vite:generator adds a package to an existing monorepo, not a new repository.
const shouldSetupGit =
selectedTemplateName === BuiltinTemplate.generator ? false : await promptGitInit(options);
Comment thread
jong-kyung marked this conversation as resolved.
if (!isMonorepo) {
shouldSetupHooks = await promptGitHooks(options);
}
Expand Down Expand Up @@ -891,7 +900,7 @@ Use \`vp create --list\` to list all available templates, or run \`vp create --h
if (templateInfo.command === BuiltinTemplate.monorepo || isBundledMonorepo) {
// Ask up-front so the prompt isn't buried under scaffold output.
let shouldInitGit = shouldSetupGit;
if (options.interactive && !compactOutput) {
if (options.interactive && !compactOutput && options.git === undefined) {
pauseCreateProgress();
const selected = await prompts.confirm({
message: 'Initialize git repository:',
Expand Down
Loading