react+ts+vite从0搭建项目

2023-11-16

一、创建项目:

1、创建一个基础项目:

npm create vite@latest  项目名  --template react-ts

eg:输入命令后需要回答几个问题 按照自己需求选择即可, 此处选择react + ts
在这里插入图片描述
2、格式化代码的配置
a、vscode 编辑器需要安装eslint插件
在这里插入图片描述

b、安装eslint:

第一步:  npm i eslint -D
第二步: npx eslint --init

eg: 输入第二步的命令后同样需要回答几个问题,按照自己的需求选择即可,下面是我选择的选项(蓝色的是选择的答案)
备注: 第一个问题选择最后一个选项即可
在这里插入图片描述
成功后会在文件目录下自动生成 .eslintrc文件。
c、 在项目根目录创建一个.vscode文件夹,放入settings.json 文件, 用来保存时自动修复项目代码
在这里插入图片描述
文件里面的内容自己百度即可, 主要是一些配置项,下面列出来本人之前用过的配置项

{
  // VS Code Configuration
  "javascript.validate.enable": false, // disable default js validation
  "workbench.editor.enablePreview": false, // 关闭文件预览
  //disable css validation 
  "css.validate": false,
  "less.validate": false,
  "scss.validate": false,
  "editor.codeActionsOnSave": {
    "source.fixAll": true, 
    "source.fixAll.eslint": true
  },
  // for supporting vue
  "eslint.validate": ["vue", "html", "javascript", "graphql", "typescript"],
 "editor.tabSize": 2,
  "editor.formatOnSave": true,
  "git.ignoreWindowsGit27Warning": true,
  "editor.defaultFormatter": "dbaeumer.vscode-eslint",
  //add emmet language for vue
  "emmet.includeLanguages": {
    "vue-html": "html",
    "vue": "html"
  },
  "[html]": {
    "editor.defaultFormatter": "vscode.html-language-features"
  },
}

d、安装prettier
官网:https://prettier.io/

npm i prettier -D

eg: 在这里插入图片描述
安装后,在根目录下新建.prettierrc.json 文件

在这里插入图片描述
在文件里写入一些基础配置

{
  "printWidth": 120,
  "tabWidth": 2,
  "semi": true,
  "singleQuote": true,
  "trailingComma": "none",
  "bracketSpacing": true,
  "jsxBracketSameLine": false,
  "endOfLine": "auto"
}

写入后, 格式化所有文件的代码

npx prettier --write .

eg:
在这里插入图片描述
此时 打开项目页面,会发现代码都红了, 这是由于eslint 和prettier 冲突引起的, 接下来是解决两者的冲突,需要用到两个插件

npm i eslint-config-prettier -D

在这里插入图片描述

安装后,在.eslintrc.cjs中加入关于prettier的扩展
在 extends中加上prettier,此时报错减少了一部分,因为解决了冲突问题
在这里插入图片描述
然我们想用prettier 管理代码格式,但是保存的时候还想用eslint来格式化代码, 此时需要另一个配置

npm i eslint-plugin-prettier -D

安装完成后, 在.eslintrc.cjs中再修改配置

module.exports = {
  env: {
    browser: true,
    //commonjs: true,  // 把这个删掉 !!!!
    es2021: true
  },
  extends: [
    'eslint:recommended',
    'plugin:react/recommended',
    'plugin:@typescript-eslint/recommended',
    'plugin:prettier/recommended'   // 将上步骤写在这的prettier 改成现在这个
  ],
  overrides: [],
  parser: '@typescript-eslint/parser',
  parserOptions: {
    ecmaVersion: 'latest',
    sourceType: 'module'  //  这个一定要加!! react 不需要必须使用jsx ,加上它可以是写react16以上版本hook写法
  },
  plugins: ['react', '@typescript-eslint', 'prettier'],
  // rules 里面放入这两句话即可, 原本生成的都去掉
  rules: {
    'prettier/prettier': 'error',
    'react/react-in-jsx-scope': ['off']
  }
}
//  ---- 以上是最终eslintrc.cjs 文件的所有内容

到此 , 项目初始搭建关于管理代码格式的配置就完成了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

react+ts+vite从0搭建项目 的相关文章

  • 从 php 到 JavaScript 的数组

    我正在尝试使用 json 将数组列表从 php 传输到 javascript 但它不起作用 JS ajax url getProfilePhotos php type post post or get method data if you
  • 我如何使用 querySelector() 选择具有双类的元素

    当我想使用 querySelector 选择元素时遇到问题 ul class xoxo blogroll ul 我怎样才能选择它ul元素 在我的代码中我像这样使用 var list document body querySelector u
  • 您可以将现有的 div 复制到模式对话框吗

    我有一个带有多个面板的仪表板来显示不同的信息 我希望能够添加一个按钮来以模式显示面板 我正在使用引导程序 我所能找到的只是已经编写的模态 我想复制作为面板的 div 标签的内容 然后将其显示在模型中 但我不确定如何进行 该面板的 html
  • Sonar 中的 javascript 代码覆盖率

    我是使用 Sonar 和插件进行 javascript 代码覆盖的新手 使用 Sonar 分析时 有哪些可能性可以找出 javascript 代码的质量 包括代码覆盖率 目前我正在使用 karma runner 它提供代码覆盖率报告 可以在
  • 如何强制折断不可折断的字符串?

    我有一个根据数据库中包含的数据生成的 HTML 页面 数据库有时包含浏览器无法分解的长字符串 因为这些字符串不包含可分解的字符 空格 点 逗号等 有没有办法使用 html css 甚至 javascript 来解决这个问题 看到这个link
  • Angularjs 完整日历不显示事件

    我正在用那个https github com angular ui ui calendar https github com angular ui ui calendar在 Angularjs 中使用 FullCalendar 它显示日历并
  • 在动态创建的元素上添加事件监听器[重复]

    这个问题在这里已经有答案了 是否可以向所有动态生成的元素添加事件侦听器 Javascript 我不是页面的所有者 因此我无法以静态方式添加侦听器 对于页面加载时创建的所有元素 我使用 doc body addEventListener cl
  • Cosmos DB Mongo API 如何管理“请求率很大”情况

    我有以下代码 async function bulkInsert db collectionName documents try const cosmosResults await db collection collectionName
  • html canvas动画卡顿

    谁能解释为什么提供的画布动画断断续续 我创建了一个测试存根来演示该问题 我在桌面上的 FF Chrome IE 以及 Android 上的 FF 和 Chrome 中看到了卡顿现象 口吃是由于垃圾收集造成的吗 似乎 raf 在每次调用时都会
  • 如何循环遍历对象数组并生成键值对?

    我有一个像这样的对象数组 let someObj items id 12 value true id 34 value true id 56 value false 我想将其添加到现有对象中 其中 id 是该对象的键 如下所示 let ob
  • 窗口大小调整触发的 DOM 事件

    我有一个布局相当复杂的页面 最初打开页面时 某些元素的对齐存在问题 但是 可以通过更改浏览器窗口的大小来 永久 解决此问题 显然 我不希望用户必须调整浏览器窗口的大小才能使页面正确显示 所以我想知道是否有一种方法可以在页面首次加载时以编程方
  • 如何在 javascript 中基于类型字符串创建新对象?

    如何基于变量类型字符串 包含对象名称 在 javascript 中创建新对象 现在我有 随着更多工具的出现 列表会变得更长 function getTool name switch name case SelectTool return n
  • 将 window.location 传递给 Flask url_for

    我正在使用 python 在我的页面上 当匿名用户转到登录页面时 我想将一个变量传递到后端 以便它指示用户来自哪里 发送 URL 因此 当用户单击此锚链接时 a href Sign in a 我想发送用户当前所在页面的当前 URL
  • @aspnet/signalr 与 @microsoft/signalr javascript 库

    aspnet signalr 与 microsoft signalr javascript 库有什么区别 两者似乎都对 DotNetCore SignalR 有效 两者似乎都很活跃 在一些教程中 我找到 aspnet signalr 在Do
  • 尝试使用 Firebug 查找 JavaScript 文件中的函数

    我试图找到这个函数调用 myFooBar 该函数在某些 HTML 中内联引用 但页面加载了大量 JavaScript 并且在每个文件中搜索该函数需要相当多的工作 如何使用 Firebug 找到此函数所在的 JavaScript 文件 打开脚
  • JavaScript Promise 不执行 .then()

    我在 JavaScript 中的 Promise 方面遇到了一些问题 我想做的是获得一个地址列表 然后对于每个地址 我需要调用地理编码 API 来获取 lat lng 然后我将继续将标记与热图一起绘制 这是我的代码 let promiseK
  • ReactJs 警告:不推荐使用改变“style”。考虑事先克隆它

    我收到以下警告 inWarning div was passed a style object that has previously been mutated Mutating style is deprecated Consider c
  • p5 向量减法“sub”返回错误

    我一直在尝试将 p5 草图上传到 React 构建中 使用react p5 wrapper 我能够成功在屏幕上渲染画布 但是 某些矢量函数会导致错误 var distance this position dist ball position
  • 用javascript调用外部网页(跨域)

    我正在尝试使用以下网络服务来验证提要这个问题 https stackoverflow com questions 11996430 check if a url is a valid feed 但浏览器不允许我向另一台服务器发送 ajax
  • JQuery 删除和内存泄漏

    我正在开发一个游戏 我看到了很多内存消耗 我使用jquery animate 动画完成后 我 remove 元素 我的问题是 从 dom 树中删除一个元素后 对象还存在记忆中吗 Javascript 是一种垃圾收集语言 这意味着当没有代码保

随机推荐

  • Android P PowerManagerService分析(一)

    1 概述 PowerManagerService是负责管理 协调设备电源管理的系统服务之一 设备常见功能如亮灭屏 亮度调节 低电量模式 保持CPU唤醒等 都会通过PMS的协调和处理 其继承自SystemService 因此具有SystemS
  • 创建线程的三种方式,常用线程池介绍

    进程和线程 线程是在一个进程中 并发执行的多个程序逻辑 线程是进程执行的单位 一个进程中至少有一个线程 而这个线程被称为主线程 主线程是一个程序的入口 main 就是由主线程来执行的 线程创建三种方式 1 继承Thread类 2 实现Rnn
  • 深度前馈网络(DNN):理解、应用和Python示例

    目录 1 引言 2 什么是深度前馈网络 3 深度前馈网络的原理 3 1 神经元和激活函数 3 2 前馈传播 3 3 反向传播和参数更新 4 深度前馈网络的应用 4 1 图像分类 4 1 1 数据预处理 4 1 2 模型选择与训练 4 1 3
  • /etc/目录下的passwd文件内容详解

    etc passwd中一行记录对应着一个用户 每行记录又被冒号 分隔为7个字段 其格式和具体含义如下 用户名 口令 用户标识号 组标识号 注释性描述 主目录 登录Shell 1 用户名 是代表用户账号的字符串 通常长度不超过8个字符 并且由
  • 《数据库系统内 幕》存储引擎

    数据库系统内幕 存储引擎 负责内存和磁盘上存储 检索和管理数据 章一 TPC C基准 acid属性 设计存储引擎 章二 b树的平衡 基于磁盘存储的树 不太了解 分页二叉树 总结 章三 文件格式 章四 页头 搜索 分裂合并 平衡 压缩 清扫维
  • html输入框文字颜色_HTML5颜色输入

    html输入框文字颜色 Currently supported in all modern browsers with the exception of Safari and Internet Explorer the potential
  • 使用正则匹配标签

    在我写上一个试题管理项目时 有一个需求是需要匹配HTML文档节点的 因为有些试题是有图片的 所以需要把图片给匹配出来 他储存在数据库的形式如下 img src xxx xx x x png xxxxxxxxxxxxxxxxxxxxxxxxx
  • An exception occurred processing JSP page

    今天在整个Mybatis SSM 练习时 运行程序一直报一下错误 说是 An exception occurred processing JSP page处理JSP页面时发生异常 Type Exception Report Message
  • JMS 学习 一

    JMS 作为一个ActiveMQ的实现 在JAVA开发中经常使用 一 环境准备 从最新的网站上获取最新版本 下载地址为 http activemq apache org download html 可以看到有2个版本 一个windows版本
  • MySQL为什么使用B+树作为索引? 索引原理?

    目录 一 Mysql索引主要有两种结构 B Tree索引和Hash索引 什么是索引 为什么要使用索引 举例说明使用索引的好处 数据库中使用什么数据结构作为索引 各种树的名字 平衡二叉树 为什么平衡二叉树也不适合作为索引 B Tree适合作为
  • linux内核安装编译

    Linux内核下载及编译 下载Linux内核 可以从官网下载linux内核 也可以通过第三方网站进行下载 官网网址 https www kernel org 由于官网可能存在被墙的原因 所以下在很慢 这里也提供一个更加便捷的下载地址 htt
  • 爬虫小练手

    目录 一 简介 了解爬虫 二 网络协议 2 1 http协议 2 2 https协议 三 入门案例 3 1 爬取搜狗首页的页面数据 3 2 爬取搜狗指定词条对应的搜索结果页面 简易网页采集器 3 3 破解百度翻译 获取想要的翻译结果 3 4
  • Windows10家庭版添加组策略编辑器

    1 新建批处理文件test bat 内容如下 echo off pushd dp0 dir b SystemRoot servicing Packages Microsoft Windows GroupPolicy ClientExtens
  • Unity实战(1):Unity点击按钮,打印按钮文字内容

    目录 前言 一 准备工作 1 在场景中新建一个按钮 这里使用的是Button TextMeshPro 如果没有需要更新UNITY版本 2 将Button的文字内容在这里改为123456以便测试 新建好以后默认的内容是Button 3 新建一
  • c++学习

    7 指针 7 1 指针的基本概念 作用 可以通过指针间接访问内存 指针是用来记录内存地址编号的 指针就是一个地址 1 定义指针 语法 数据类型 指针变量名 int a 10 int p p a 或者int p a cout lt lt a的
  • PTA 基础编程题目集 7-27 冒泡法排序 C语言

    PTA 基础编程题目集 7 27 冒泡法排序 C语言 将N个整数按从小到大排序的冒泡排序法是这样工作的 从头到尾比较相邻两个元素 如果前面的元素大于其紧随的后面元素 则交换它们 通过一遍扫描 则最后一个元素必定是最大的元素 然后用同样的方法
  • Nacos配置文件 Param ‘serviceName‘ is illegal, serviceName is blank

    今天学习NACOS配置文件时 报错Param serviceName is illegal serviceName is blank 但是我在bootstrap yml文件中配置了服务名 父工程引入的依赖版本为最新的2021 1
  • AndroidStudio将module变为library

    文章注明出处可随意转载 请尊重别人的劳动成果 前言 在一个application当中 可能会存在多个module 有时也会有一个module包含其他module的需求 在完成这个需求时 Google了很多 全是2014年之前的一些老文章 现
  • Gateway配合sentinel自定义限流_Spring Cloud Gateway 扩展支持动态限流

    之前分享过 一篇 限流实现 核心是依赖Spring Cloud Gateway 默认提供的限流过滤器来实现 原生RequestRateLimiter 的不足 配置方式 RequestRateLimiterGatewayFilterFacto
  • react+ts+vite从0搭建项目

    一 创建项目 1 创建一个基础项目 npm create vite latest 项目名 template react ts eg 输入命令后需要回答几个问题 按照自己需求选择即可 此处选择react ts 2 格式化代码的配置 a vsc