1、初始化项目
执行npm init生成package.json文件
{
"name": "react+ts+vite",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev": "vite",
"build": "vite build"
},
"author": "wxtao",
"license": "ISC",
"dependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"devDependencies": {
"@types/node": "^18.0.0",
"@types/react": "^18.0.14",
"@types/react-dom": "^18.0.5",
"@vitejs/plugin-react": "^1.3.2",
"typescript": "^4.7.4",
"vite": "^2.9.13"
}
}
2、根目录文件
创建index.html文件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/src/favicon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + React + Ts</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
创建tsconfig.json
{
"compilerOptions": {
"target": "ESNext",
"useDefineForClassFields": true,
"lib": ["DOM", "DOM.Iterable", "ESNext"],
"allowJs": false,
"skipLibCheck": true,
"esModuleInterop": false,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "ESNext",
"moduleResolution": "Node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx"
},
"include": ["src"],
"references": [{ "path": "./tsconfig.node.json" }]
}
创建tsconfig.node.json
{
"compilerOptions": {
"composite": true,
"module": "esnext",
"moduleResolution": "node"
},
"include": ["vite.config.ts"]
}
创建vite.config.ts配置文件
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
server: {
port: 7070,
open: false,
}
})
3、src文件夹
创建main.tsx
import React from "react";
import ReactDom from 'react-dom/client';
import App from "./pages/app";
ReactDom.createRoot(document.getElementById('root')!).render(
<React.StrictMode>
<App />
</React.StrictMode>
) // 此处将页面挂在到root节点下
创建page文件夹 创建App.tsx文件
import React from "react";
const App = () => {
return (
<div>
<div>
配置vite + ts + react
</div>
</div>
)
}
export default App;
4、运行脚本
在终端先执行cnpm i 安装依赖
然后执行npm run dev命令
进入http://localhost:7070/ 就可以看见此时我们的界面了