@25sprout/react-starter
Version:
25sprout web starter with React
42 lines (30 loc) • 1.15 kB
JavaScript
import path from 'path';
import { fileURLToPath } from 'url';
import fs from 'fs/promises';
import fsExtra from 'fs-extra';
import processPkg from './preprocess/package.js';
import processReadme from './preprocess/readme.js';
import processGitignore from './preprocess/gitignore.js';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const templateFolder = path.join(__dirname, '../template');
const tsTemplateFolder = path.join(__dirname, '../template-ts');
async function exec(options) {
const projectName = options.name || 'react-starter';
const projectPath = path.join(process.cwd(), projectName);
const projectTemplate = options.typescript ? tsTemplateFolder : templateFolder;
try {
await fs.mkdir(projectPath, { recursive: true });
console.log(`${projectName} is created`);
await fsExtra.copy(projectTemplate, projectPath);
await Promise.all([
processPkg(projectPath, options),
processReadme(projectPath, options),
processGitignore(projectPath, options),
]);
console.log('Creat project done');
} catch (error) {
console.log(error);
}
}
export default exec;