leiwuhen-67's blog leiwuhen-67's blog
首页
    • 《Vue》笔记
    • 《React》笔记
    • 《NodeJs》笔记
    • 《CSS》笔记
    • 《Redis》笔记
    • 基础入门
    • 《Mock》笔记
    • 《MySQL》笔记
    • 《Git》相关
影音视听
收藏
关于
GitHub (opens new window)

我的公众号

首页
    • 《Vue》笔记
    • 《React》笔记
    • 《NodeJs》笔记
    • 《CSS》笔记
    • 《Redis》笔记
    • 基础入门
    • 《Mock》笔记
    • 《MySQL》笔记
    • 《Git》相关
影音视听
收藏
关于
GitHub (opens new window)
  • React

    • 使用React脚手架快速搭建项目
    • hooks之useEffect
    • React之事件绑定及简写方式
    • React之props传值并对其进行限制
    • React之Refs的基本使用
    • React之生命周期钩子
    • React之key的使用
    • React之代理服务器配置
    • React之封装全局Loading组件
    • React之消息的发布-订阅(pubsub-js)
    • React之Redux的基本使用
    • React之react-redux的基本使用
    • React之redux的数据持久化存储
    • React之路由懒加载
    • React之Render Props的使用
    • React之createBrowserRouter
    • React之路径别名@配置
    • React之craco打包优化配置
    • React之项目国际化
    • React之postcss-pxtorem移动端适配
    • React之使用vite创建项目
      • 1、创建react + ts项目
      • 2、创建完成后,安装相关依赖
      • 3、npm run dev启动项目发现能正常运行。
      • 4、项目开发相关配置
        • (1)、安装postcss-pxtorem、autoprefixer、vite-plugin-compression
        • (2)、开启打包后js、css、图片等文件夹分离。
        • (3)、配置@路径别名
        • (4)、react-router-dom安装及配置
        • (5)、配置路由管理文件
        • (6)、配置自动按需引入
        • (7)、配置prettier以实现代码格式化。
    • React之ts类型标注汇总
    • React之使用 ant design搭建后台管理之踩坑
    • React之路由切换动画
    • React之使用vite创建组件库并发布到npm
    • React之项目打包部署到nginx
    • React之自定义组件添加className与style
  • React Native

  • 《React》笔记
  • React
心欲无痕
2024-06-21
目录

React之使用vite创建项目

虽然使用官方脚手架创建项目使用的多点,但也想尝试下使用 vite 创建项目。这里特此记录下。

# 1、创建 react + ts 项目

// npm 6.x
npm create vite@latest vite-react-ts-demo --template react-ts

// npm 7+
npm create vite@latest vite-react-ts-demo -- --template react-ts
1
2
3
4
5

# 2、创建完成后,安装相关依赖

npm install
1

# 3、npm run dev 启动项目发现能正常运行。

# 4、项目开发相关配置

# (1)、安装 postcss-pxtorem、autoprefixer、vite-plugin-compression

具体配置同使用 vite 搭建 vue3+TS 项目及基础配置 (opens new window)中一样

npm install postcss-pxtorem autoprefixer vite-plugin-compression -D
1

# (2)、开启打包后 js、css、图片等文件夹分离。

配置也与在 vue 中配置相同,执行完后可能会报错,[vite:terser] terser not found. Since Vite v3, terser has become an optional dependency. You need to install it. 意思是在 vite v3 中,需要手动安装 terser

npm install terser -D
1

现在执行 npm run build 进行打包能正常工作了。

# (3)、配置 @路径别名

import path from 'path'

resolve: {
  alias: {
    '@': path.resolve(__dirname, 'src')
  }
}
1
2
3
4
5
6
7

此时可能会报错,找不到模块 “path” 或其相应的类型声明,这是因为 path 模块是 node.js 内置的功能,但是 node.js 本身并不支持 typescript,所以直接在 typescript 项目里使用是不行的

所以需要安装 @types/node 来解决这个问题

npm install @types/node -D
1

安装完后,警告就消失了

# (4)、react-router-dom 安装及配置

npm install react-router-dom
1

# (5)、配置路由管理文件

import { lazy, Suspense, type ReactNode } from 'react'
import { createBrowserRouter } from 'react-router-dom'
const Home=lazy( () => import( '@/Pages/Home' ) )

function LoadingComponent ({children}: {children: ReactNode}) {
	return (
		<Suspense fallback={"加载中"}>{children}</Suspense>
	)
}

const routes=createBrowserRouter( [
  {
    path: '/',
    element: <LoadingComponent><Home /></LoadingComponent>,
    children: [
      {
        path: 'page1',
        element: <LoadingComponent><div>page1</div></LoadingComponent>
      }
    ]
  }
] )

export default routes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

在项目入口文件 main.tsx 中引入路由配置文件,并使用它

import React from 'react'
import ReactDOM from 'react-dom/client'
import { RouterProvider } from "react-router-dom"
import router from './router/index'

ReactDOM.createRoot(document.getElementById('root')!).render(
  <React.StrictMode>
    <RouterProvider router={router}></RouterProvider>
  </React.StrictMode>,
)
1
2
3
4
5
6
7
8
9
10

现在项目就可以正常运行了。

在路由配置文件中引入组件时,可能会报警告,如找不到某某模块等,这时,可以在 tsconfig.json 文件中增加如下配置

{
	"compilerOptions": {
		"baseUrl": ".",
		"paths": {
			"@/*": ["src/*"]
		}
	}
}
1
2
3
4
5
6
7
8

这时,警告就消失了。如果依然报警告的话,那就找是否有 tsconfig.app.json 文件,有的话也加入如上配置,警告问题即可解决。

# (6)、配置自动按需引入

npm install unplugin-auto-import -D
1

在 vite.config.ts 配置文件中引入并进行配置

import AutoImport from 'unplugin-auto-import/vite'

plugins: [
	AutoImport( {
		imports: [
			'react',
			{
			  'react-router-dom': [
			  	'createBrowserRouter',
			    'BrowserRouter',
			    'Routes',
			    'Route',
			    'Link',
			    'NavLink',
			    'useNavigate',
			    'useParams',
			    'useSearchParams',
			    'useLocation',
			    'useHistory',
			    'Outlet',
			  ]
			}
		],
		dts: 'src/auto-imports.d.ts', // 自动生成的类型声明文件路径
		eslintrc: {
		  enabled: false,  // 1、改为true用于生成eslint配置。2、生成后改回false,避免重复生成消耗
		}
	})
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

在 tsconfig.json 中的 compilerOptions 字段下增加以下配置

"types": ["./src/auto-imports"]
1

现在,项目中跟 react 和 react-router-dom 有关的 API 就可以不用手动引入便可以使用了。可能会遇到少数 API 不会自动导入,这时候手动引入一下就可以了

# (7)、配置 prettier 以实现代码格式化。

由于 vite 创建的项目默认是带有 eslint 的,然而 eslint 是用于运行代码质量检查的,并不会对代码进行格式化,因此需要 prettier
(1)、安装格式化工具,prettier 和相应的 eslint 插件

npm install prettier eslint-plugin-prettier eslint-config-prettier -D
1

(2)、在.eslintrc.js 或.eslintrc.cjs 或相应的 eslint 配置文件中,启用 prettier 插件

module.exports = {
  // ...
  plugins: ['prettier'],
  rules: {
    // 确保你的规则配置中使用了 prettier 插件
    'prettier/prettier': 'error',
  },
  // ...
};
1
2
3
4
5
6
7
8
9

(3)、在 package.json 中添加一条脚本命令用来格式化代码

{
	"scripts": {
		"format": "eslint --fix src"
	}
}
1
2
3
4
5
编辑 (opens new window)
上次更新: 3/4/2025, 5:46:30 PM
React之postcss-pxtorem移动端适配
React之ts类型标注汇总

← React之postcss-pxtorem移动端适配 React之ts类型标注汇总→

Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式