Script Kit Logo
Script Kit
by John Lindquist
Browse ScriptsBlogDiscuss
Austin Crim
Scripts /

Austin Crim

crim_codes

vite-scaffolder

by Austin Crim

// Menu: project-scaffolder 👷‍♂️
// Description: Step by step project scaffolding with Vite
const projectsDirectory = '/Users/austin/repos';
const folder = await arg({
placeholder: 'Enter project name 📁',
validate: (choice) => (choice ? true : 'Please enter a folder name.')
});
const framework = await arg('Pick a framework 👨‍💻', [
'react',
'svelte',
'preact',
'vanilla'
]);
const useTypescript =
framework === 'vanilla'
? 'false'
: await arg('Pick a flavor 🍦', [
{ name: 'TypeScript', value: true },
{ name: 'JavaScript', value: false }
]);
const packageManager = await arg('Package Manager?', ['npm', 'yarn', 'pnpm']);
setPlaceholder('building...🔨');
const command = `${packageManager} ${
packageManager === 'yarn' ? 'create' : 'init'
} @vitejs/app ${folder} -- --template ${framework}${useTypescript ? '-ts' : ''}`;
cd(projectsDirectory);
exec(command);
edit(`${projectsDirectory}/${folder}`);
created by
John Lindquist
GitHub