如何在 React 中使用 Vite 构建工具?

译文
开发 开发工具
Vite是一个新的前端应用构建工具(由Vue.js的创建者Evan you创建)。它的工作原理很像Webpack和Parcel,但速度更快。

 Vite使用 esbuild 预构建依赖。由于esbuild是一个用Go编写的JavaScript(和TypeScript)绑定器,这也是它快速的原因之一。

通常,当用React构建一个新项目时,建议从create-react-app开始。但现在有了Vite,就可以自己轻松地从头创建一个新项目,因为Vite的配置非常简单。

在我们开始之前,需要安装Node.js和NPM(与Node.js捆绑)(如果你还没有安装的话)。在本文中将使用NPM,但如果你喜欢Yarn或PNPM,请随意使用。

打开终端并创建一个新目录:

mkdir react-vite-example

移动到这个目录中:

cd react-vite-example

初始化 npm 项目:

npm init -y

在运行命令之后,应该有个package.json文件在新创建的目录中。

添加此项目所需的基本依赖项:

npm install --save react react-dom

开发依赖关系:

npm install --save-dev vite @vitejs/plugin-react-refresh

(@vitejs/plugin-react-refresh库将用于启用HMR,即热模块替换)

将以下行添加到package.json脚本中:

// /package.json
{
"scripts": {
"dev": "vite",
"build": "vite build",
"serve": "vite preview"
}
}

在项目根目录新建一个文件vite.config.js:

touch vite.config.js

添加以下内容:

// /vite.config.js
import reactRefresh from "@vitejs/plugin-react-refresh";
import vite from "vite";

const config = vite.defineConfig({
plugins: [reactRefresh()],
});

export default config;

默认情况下,Vite 会在你的项目根目录寻找index.html文件。这样便可以确定运行应用程序所需的依赖关系(JS文件,CSS文件,资产等)。

在项目的根目录下创建index.html文件:

touch index.html

添加以下内容:

<!-- /index.html -->
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/index.jsx"></script>
</body>
</html>

你可以看到有一个对/src/index的引用。index.html中的JSX文件。这将是React应用程序的JavaScript入口点。

创建/src目录:

mkdir src

创建/src/index.jsx文件:

touch src/index.jsx

添加以下内容:

import React from "react";
import { render } from "react-dom";

render(<div>Hello World!</div>, document.getElementById("root"));

由于我们安装的@vitejs/plugin-react-refresh模块,现在你可以在React中创建应用程序,并受益于Vite和HMR的速度。

使用npm run dev命令运行带有HMR的本地服务器。

使用npm run build构建一个生产包,然后可以使用npm run serve来预览它。

生产包将位于/dist目录中,是需要部署到托管平台(如Netlify或Vercel)上的包。

本文是非常基础的,也没有介绍如何使用 CSS 和资产,因为开箱即用的 Vite 已经支持 CSS 模块(如果文件以 .module.css 结尾)和导入图像等资产不需要额外的步骤。




责任编辑:黄显东 来源: hackernoon.com
相关推荐

2023-12-01 09:18:27

AxiosAxios 库

2020-04-23 08:55:01

LinuxGradle工具

2017-07-04 19:02:17

ReacRedux 项目

2024-06-04 22:04:39

2023-03-15 23:59:13

前端构建工具

2023-08-22 10:13:53

模块工具JavaScrip

2020-11-30 11:55:07

Docker命令Linux

2019-09-16 19:00:48

Linux变量

2014-07-02 09:47:06

SwiftCocoaPods

2024-09-06 11:34:15

RustAI语言

2020-04-09 10:18:51

Bash循环Linux

2022-04-18 11:13:34

前端开发工具

2021-03-09 07:27:40

Kafka开源分布式

2024-01-18 08:37:33

socketasyncio线程

2022-05-17 08:25:10

TypeScript接口前端

2011-08-10 09:31:41

Hibernateunion

2022-06-23 08:00:53

PythonDateTime模块

2021-06-09 09:36:18

DjangoElasticSearLinux

2015-08-27 09:46:09

swiftAFNetworkin

2020-09-07 14:40:20

Vue.js构建工具前端
点赞
收藏

51CTO技术栈公众号