React搭建Vite项目及各种项目配置

1. 创建Vite项目

在操作系统的命令终端,输入以下命令:

bash 复制代码
yarn create vite

输入完成以后输入项目名称、选择开发框架,选择开发语言,如下图所示,即可完成项目创建。

注意事项:

  1. Node版本必须符合要求,否则安装过程中会提示版本不对;

  2. 由于上面是使用的yarn来安装的,所以需要首先通过npm来全局安装yarn;

项目创建成功以后通过以下命令安装依赖:

bash 复制代码
yanr install --save

然后通过以下命令启动项目:

bash 复制代码
yarn dev

启动成功后就可以通过生成的访问地址在浏览器里访问了。

项目在安装依赖过程中要是特别慢的话,可以修改镜象源。

要是通过npm安装的话,只需要通过将上面命令中的yarn换成npm即可。

上面的是全局修改镜象源,要是只想针对这个项目修改镜象源的话,可以在项目的根目录下添加配置文件,yarn安装添加.yarnrc文件,npm安装添加.npmrc文件,编辑文件内容如下:

javascript 复制代码
registry "https://registry.npm.taobao.org"

如果项目后续安装依赖比较多,或是有微服务开发建议使用pnpm来安装。

2. 编辑器配置

为了保证不同的开发者在不同编辑器上开发同一个项目编辑格式一样的,我们需要在在项目的根目录下创建一个叫.editorconfig的文件,注意前面有个点。

上面图片中的配置内容如下,方便大家复制粘贴。

javascript 复制代码
# https://editorconfig.org       # 文件官方网站
root = true   					 # 根目录的文件

[*]								 # 针对文件范围
charset = utf-8					 # 文件字符格式
indent_style = tab		         # 行头缩进类型
indent_size = 4					 # 行头缩进大小
end_of_line = lf                 # 结尾换行标志
insert_final_newline = true      # 结尾插入新行
trim_trailing_whitespace = true  # 修剪尾随空格

需要注意的时,在Webstorm中会自动读取配置文件,而VS Code编辑器里面,需要安装以下插件才可以读取配置文件。

3. 格式化配置

为了代码风格整体保持一致,需要安装格式化代码工具,安装命令如下:

bash 复制代码
yarn add prettier -D

如下图所示,即为安装成功。

在根目录下创建配置文件.prettierrc.cjs,添加配置代码。

javascript 复制代码
module.exports = {
    // 每行最多的列
    printWidth:120,
    // 用制表符缩进
    useTabs:false,
    // 行头缩进宽度
    tabWidth:4,
    // 结尾是否分号
    semi:false,
    // 是否用单引号
    singleQuote:true,
    // JSX中单引号
    jsxSingleQuote:true,
    // 箭头函数括号
    arrowParens:'avoid',
    // 符号文字空格
    bracketSpacing:true,
    // 是否尾随逗号
    trailingComma:'none'

}

为了实现保存时自动格式化,同时需要安装如下插件。

为了让格式化不会影响到编辑里所有的项目,可以针对当前项目添加一个专门的格式化配置。

在项目的根目录下添加一个叫.vscode的文件夹,文件夹里新建一个叫setting.json的文件,添加代码如下:

以下是上图中的代码,便于大家复制粘贴。

javascript 复制代码
{
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
        "source.fixAll": true
    }
}

4. 语法校验配置

ESLint主要是为了解决代码质量问题,它能在我们编写代码时就检测出程序可能出现的隐性Bug。

首先执行安装命令:

javascript 复制代码
yarn add eslint -D

安装完成后,执行以下命令初始化:

javascript 复制代码
yarn eslint --init

以下为初始化过程,相关选项可供参考。

执行完以上步骤以后,在根目录下会生成名为.eslintrc.cjs的文件,我们可以在里面加一些自定义的规则,其内容如下:

javascript 复制代码
module.exports = {
    root: true,
    env: { browser: false, es2020: true },
    extends: [
        // ESLint推荐配置
        "eslint:recommended",
        // TS推荐的配置
        "plugin:@typescript-eslint/recommended",
        // React推荐的配置
        "plugin:react-hooks/recommended",
    ],

    ignorePatterns: ["dist", ".eslintrc.cjs"],
    parser: "@typescript-eslint/parser",
    plugins: ["react-refresh"],
    rules: {
        "react-refresh/only-export-components": [
            "warn",
            { allowConstantExport: true },
        ],

        // * "off" 或 0    ==>  关闭规则
        // * "warn" 或 1   ==>  打开的规则作为警告,不影响代码执行
        // * "error" 或 2  ==>  规则作为一个错误,代码不能执行,界面报错

        // 以下为自定义规则
        'react/react-in-jsx-scope': 'off',  // 关闭JSX必须声明React
        'no-console': 'error',              // 禁止控制台输出
        'no-unused-vars': 'error',          // 禁止定义未使用变量
        'no-debugger': 'error',             // 禁止控制台调试
        'no-var': 'error',                  // 禁止声明全局变量
    },
};

记得将以上第3行代码中的默认为浏览器环境改为false,否则有些文件里的node语法会报错。

5. 脚手架Vite配置

javascript 复制代码
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import path from 'path'

export default defineConfig({
    // 配置服务代理
    server: {
        host: 'localhost',
        port: 8080,
        proxy: {
            '/api': 'http://api-driver.marsview.cc'
        }
    },
    resolve: {
        // 添加路径别名
        alias: {
            '@': path.resolve(__dirname, './src')
        }
    },
    plugins: [react()]
})

以上代码中只添加了两个常用的配置 ,更多的配置可以查看Vite官网。

Vite官网:https://vitejs.dev/config/

相关推荐
志尊宝4 天前
Vue3 零基础每日笔记(071):暗黑模式与主题切换——CSS 变量 + Element Plus 暗黑方案
前端·css·笔记·vue·html·前端开发·软件开发
guslegend4 天前
工程地基、Provider 与 ReAct 循环:Agent 核心能力的设计、实现与验收
人工智能·agent·react·架构设计·spring ai
EatFan5 天前
React 项目踩坑实录:useEffect 闭包陷阱、Context 性能陷阱与 React 18 升级避坑排查手册
前端·javascript·react.js·react·react hooks·useeffect·闭包陷阱
FungLeo10 天前
成为全栈·Next.js 网站前台篇·站点设置如何驱动页头、页脚与 SEO
react·isr·next.js·metadata·成为全栈·站点配置
大连好光景10 天前
ReAct的原理?与CoT的区别是啥?
react·cot
大连好光景10 天前
Agent完整工作过程
react·agent完整工作流程
Alice-YUE11 天前
前端 × AI:从 Cursor 到 Transformer,一份完整认知路径
前端·人工智能·transformer·ai编程·前端开发·cursor
FungLeo12 天前
成为全栈·Next.js 网站前台篇·同源 BFF 代理:API、附件、Cookie 与跨站写入保护
react·csrf·next.js·bff·成为全栈·route handler
Alice-YUE12 天前
React 渲染机制速通:Render 树、Fiber 树与更新调度
前端·react.js·前端框架·react·fiber·前端性能·渲染机制
传奇开心果编程13 天前
【现代声明式UI学与练】第1课 从命令式UI到声明式UI
学习·flutter·ui·swiftui·react·android jetpack