Vite + TypeScript + Node 开发一个初始化项目的脚手架
    		       		warning:
    		            这篇文章距离上次修改已过438天,其中的内容可能已经有所变动。
    		        
        		                
                以下是一个简单的脚手架项目初始化脚本示例,使用了Node.js和Vite来创建一个带有TypeScript支持的新项目骨架。
const fs = require('fs-extra');
const path = require('path');
const execa = require('execa');
 
// 创建项目目录结构
function createDirectoryStructure(root) {
  fs.mkdirpSync(path.join(root, 'src'));
  fs.mkdirpSync(path.join(root, 'public'));
}
 
// 初始化package.json
function initPackageJson(root, projectName) {
  const pkg = {
    name: projectName,
    version: '0.1.0',
    scripts: {
      dev: 'vite',
    },
    dependencies: {
      react: '^17.0.1',
      'react-dom': '^17.0.1',
    },
    devDependencies: {
      vite: '^2.0.0',
      typescript: '^4.1.3',
    },
  };
  fs.writeFileSync(path.join(root, 'package.json'), JSON.stringify(pkg, null, 2));
}
 
// 创建TypeScript配置文件
function createTsConfig(root) {
  const tsConfig = {
    compilerOptions: {
      target: 'esnext',
      module: 'esnext',
      jsx: 'react',
      moduleResolution: 'node',
      lib: ['esnext', 'dom'],
      outDir: 'dist',
      skipLibCheck: true,
    },
    include: ['src/**/*.tsx', 'src/**/*.ts'],
  };
  fs.writeFileSync(path.join(root, 'tsconfig.json'), JSON.stringify(tsConfig, null, 2));
}
 
// 创建Vite配置文件
function createViteConfig(root) {
  const viteConfig = `
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
 
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
});
`;
  fs.writeFileSync(path.join(root, 'vite.config.ts'), viteConfig);
}
 
// 初始化git仓库
function initGitRepo(root) {
  process.chdir(root);
  execa('git', ['init']);
  execa('git', ['add', '.']);
  execa('git', ['commit', '-m', 'Initial commit']);
}
 
// 主函数
function createProject(projectName) {
  const root = path.join(process.cwd(), projectName);
  createDirectoryStructure(root);
  initPackageJson(root, projectName);
  createTsConfig(root);
  createViteConfig(root);
  initGitRepo(root);
}
 
// 使用脚手架创建项目
createProject('my-vite-project');这段代码首先定义了创建目录结构、初始化package.json、创建TypeScript和Vite配置文件以及初始化Git仓库的函数。最后通过createProject函数来执行这些步骤,创建一个新的项目。
注意:在实际应用中,脚手架通常会更复杂,包括命令行界面(CLI)、交互式提示等功能,但这个示例提供了一个基本的项目初始化流程。
评论已关闭