首先, 我们使用 vite 创建一个 React 项目
1npm create vite
上面的命令执行完成之后, 会引导你输入项目名称, 我们将项目名称取为:react19feature
1✔ Project name: react19feature
输入之后, 按下回车, 选择前端框架
1vanilla2vue3> react4react-ts5preact6lit7svelte
我们选择 react, 执行完毕之后, vite 会在当前目录中创建项目 react19feature, 我们通过如下指令进入到项目文件
1cd react19feature
然后用编辑器打开项目文件, 在根目录的 package.json 文件中修改 react 与 react-dom 的依赖版本为 react 19.
1"dependencies": {2"react": "^19.0.0",3"react-dom": "^19.0.0",4}
注意:如果已经正式发版, 那么vite 创建的版本可能会直接更新为最新版而不需要我们手动修改
修改完成之后, 执行如下指令安装依赖
1npm i
然后执行如下指令运行项目
1npm run dev
成功启动之后, 我们可以在浏览器中输入 http://localhost:5173 访问到项目
01import { useState } from 'react'02import reactLogo from './react.svg'03import viteLogo from './vite.svg'0405function App() {06const [count, setCount] = useState(0)0708return (09<div className='flex items-center justify-center flex-col p-4'>10<div className='flex items-center justify-center gap-4'>11<a href="https://vitejs.dev" target="_blank">12<img src={viteLogo.src} className="logo" alt="Vite logo" />13</a>14<a href="https://react.dev" target="_blank">15<img src={reactLogo.src} className="logo react" alt="React logo" />16</a>17</div>18<h1>Vite + React</h1>19<div className="text-center">20<button className='button' onClick={() => setCount((count) => count + 1)}>21count is {count}22</button>23<p>24Edit <code>src/App.tsx</code> and save to test HMR25</p>26</div>27<p className="read-the-docs">28Click on the Vite and React logos to learn more29</p>30</div>31)32}3334export default App
由于我们项目需要用到 require, 但是 vite 中使用 ES module 作为模块方案, 因此并没有内置对CommonJS 的支持, 如果你需要在项目中支持 require 语法引入模块, 则需要做点其他的操作
首先, 我们需要安装如下依赖
1npm i vite-plugin-require-transform --save-dev
然后, 在 vite.config.js 中新增如下配置
01import { defineConfig } from 'vite'02import react from '@vitejs/plugin-react-swc'+03import requireTransform from 'vite-plugin-require-transform'040506// https://vitejs.dev/config/07export default defineConfig({08plugins: [09react(),+10requireTransform({+11fileRegex: /.js$|.jsx$/,+12}),13],14})
如果你需要支持更多的文件后缀, 则需要在 fileRegex 中添加, 本项目仅支持 .js 与 .jsx
最后重启项目即可.
除此之外, 如果你的项目中需要使用路由库, 我们可以安装 react-router
1npm i react-router
状态管理库 zustand
1npm i zustand