Next.js 项目——从入门到入门(Eslint+Prettier)

Next.js官方文档地址

什么是 Next.js

这是一个用于生产环境的 React 框架。

Next.js 为您提供生产环境所需的所有功能以及最佳的开发体验:包括静态及服务器端融合渲染、 支持 TypeScript、智能化打包、 路由预取等功能,无需任何配置。

功能:

功能说明
零配置自动编译并打包。从一开始就为生产环境而优化
混合模式: SSG 和 SSR在一个项目中同时支持构建时预渲染页面(SSG)和请求时渲染页面(SSR)
增量静态生成在构建之后以增量的方式添加并更新静态预渲染的页面
支持 TypeScript自动配置并编译 TypeScript
快速刷新快速、可靠的实时编辑体验,已在 Facebook 级别的应用上规模上得到验证
基于文件系统的路由每个 pages 目录下的组件都是一条路由
API 路由创建 API 端点(可选)以提供后端功能
内置支持 CSS使用 CSS 模块创建组件级的样式。内置对 Sass 的支持
代码拆分和打包采用由 Google Chrome 小组创建的、并经过优化的打包和拆分算法

更多功能: 支持 环境变量、 预览模式、 自定义 head 标签、 自动使用 polyfills 等等

项目创建

使用 pnpm 创建一个默认的 Next.js 应用,代码如下:

pnpx create-next-app nextjs-blog --use-pnpm

接下来会有一些option操作,可以根据自身需求来选择,这里的选择如下:

nextjs

启动项目的时候需要注意一下,当前 next 包用到的 node 版本。通过 node_modules/next/package.json 来查看一下,如图:

nextjs

需要项目的 node 版本至少满足 next 包的 node 版本,因此本项目使用 v18 的 Node.js,可以通过 node -v 检查版本,如图:

nodejs

项目运行

在项目创建的时候,依赖已经安装好了,所以直接运行即可。这里使用的是 pnpm,当然可以用 npm 或者 yarn 工具。

cd nextjs-blogpnpm dev
# or
yarn dev
# or
npm run dev

将在3000端口上启动 Next.js 应用程序,在浏览器打开http://localhost:3000/,可以看到demo成功运行,如图:

nextjs

引擎锁定

在启动项目前检查过 Node.js 版本,可以像 next 包一样通过 engines 字段指定工具的特定版本。

{"name": "nextjs-blog","version": "0.1.0","private": true,"scripts": {"dev": "next dev","build": "next build","start": "next start","lint": "next lint"},"dependencies": {"react": "^18","react-dom": "^18","next": "14.0.1"},"devDependencies": {"eslint": "^8","eslint-config-next": "14.0.1"},"engines": {"node": ">=18.17.0"}
}

代码规范工具与格式化

为了设定一个标准,供项目的所有贡献者使用,以保持代码风格一致并遵循基本的最佳实践,本项目将使用两个工具:

  • Eslint - 代码规范工具
  • Prettier - 代码格式化工具

ESLint

  1. 下载 ESLint 相关依赖
pnpm install eslint eslint-config-prettier eslint-plugin-prettier eslint-plugin-react @next/eslint-plugin-next -D
依赖说明
eslintESLint 核心库
eslint-config-prettier关掉所有和 Prettier 冲突的 ESLint 的配置
eslint-plugin-prettier将 Prettier 的 rules 以插件的形式加入到 ESLint 里面
eslint-plugin-react为 React 使用 ESlint 的插件
@next/eslint-plugin-next为 Next 使用 ESlint 的插件
  1. 安装 Vscode 插件(ESLint)

eslint

  1. 配置 ESLint(.eslintrc.json)
{"extends": "next/core-web-vitals"
}
  1. 使用 ESLint

package.json 文件的 scripts 命令中:

lint

可以测试一下当前配置,通过运行以下命令:

pnpm lint

会得到如图提示:

eslint

Prettier

  1. 下载 prettier 相关依赖
pnpm install prettier -D
  1. 安装 Vscode 插件(Prettier)

Prettier
3. 配置 Prettier(.prettierrc)

.eslintrc.json

{"extends": ["next/core-web-vitals", "prettier"]
}

.prettierrc

{"tabWidth": 2,"useTabs": false,"semi": false,"singleQuote": true,"quoteProps": "as-needed","jsxSingleQuote": false,"trailingComma": "none","bracketSpacing": true,"bracketSameLine": false,"arrowParens": "avoid","requirePragma": false
}

.prettierignore

/dist/*
/build
.local
.next
/node_modules/****/*.svg
**/*.sh/public/*
*.yaml
*.json
*.md
.prettierrc

此文件是不希望 prettier 在这些目录中浪费任何资源去进行格式化,也可以使用类似 *.html 这样的方式去忽略文件。

现在,可以在 package.json 添加新的 script

prettier

可以测试一下当前配置,通过运行以下命令:

pnpm prettier

会得到如图提示:
prettier

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/185640.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac 安装 selenium + chrome driver

前言 使用 selenium 模拟浏览器渲染数据,需要依赖各浏览器的驱动才能完成,因此需要单独安装chrome driver 查看本地 chrome 浏览器的版本 可以看到我这里已经是 arm 架构下最新的版本了 下载对应的 chrome driver 访问下面的地址: Chrome…

C++ Concurrency in Action 2nd Edition

《C Concurrency in Action - SECOND EDITION》的中文翻译-面圈网 (mianshigee.com) C/C 学习教程源码-C/C源码推荐-面试哥 (mianshigee.com) 作者正是为C11标准引入线程库的C标准委员会成员本人!并且本书作者还编写了众多构成C标准的多线程和并发相关的提案、制定…

RHCE8 资料整理(五)

RHCE8 资料整理 第五篇 系统管理第18章 进程管理18.1 进程介绍18.2 查看进程18.3 向进程发送信号18.4 进程优先级 第19章 日志19.1 rsyslog的配置19.2 查看日志 第20章 网络时间服务器20.1 时间同步必要性20.2 配置时间服务器20.3 配置客户端 第21章 计划任务21.1 at21.2 cront…

VSCode修改主题为Eclipse 绿色护眼模式

前言 从参加开发以来,一直使用eclipse进行开发,基本官方出新版本,我都会更新。后来出来很多其他的IDE工具,我也尝试了,但他们的主题都把我劝退了,黑色主题是谁想出来?😂 字体小的时…

2023年眼镜行业分析(京东眼镜销量数据分析):市场规模同比增长26%,消费需求持续释放

随着我国经济的不断发展,电子产品不断普及,低龄及老龄人口的用眼场景不断增多,不同年龄阶段的人群有不同的视力问题,因此,视力问题人口基数也随之不断加大,由此佩戴眼镜的人群也不断增多。 同时&#xff0c…

华为eNSP实验-三层交换机的不同网段通信(通过OSPF路由方式)

1.拓扑图 2.过程如下 2.1 首先PC1和PC2配置好IP地址 2.2 在SW1上配置虚拟网关及VLAN <Huawei>system-view [Huawei]sysname SW1 [SW1]undo info-center enable [SW1] [SW1]vlan batch 10 20 [SW1]interface GigabitEthernet 0/0/1 [SW1-GigabitEthernet0/0/1]port li…

Ubuntu22.04配置Go环境

Ubuntu上配置Go环境biCentOS简单多了&#xff0c;有两种方案&#xff0c;一种直接使用apt进行安装&#xff0c;一种自己从官网下载安装包进行安装。 1、使用apt直接安装 更新apt安装包&#xff0c;常规操作 apt update 然后看看apt自带的Go版本是多少 apt list golang 是1…

Git 入门使用

一、Git 入门 1.1 Git简介 Git是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。Git是由Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 Git是目前世界上最先进的分布式版本控制系统&#xff0c;没有之一&a…

【自然语言处理】基于python的问答系统实现

一&#xff0c;文件准备 该问答系统是基于已知的问题和其一一对应的答案进行实现的。首先需要准备两个文本文件&#xff0c;分别命名为“question.txt”和“answer.txt”&#xff0c;分别是问题文件和答案文件&#xff0c;每一行是一个问题以及对应的答案。 问题文件: 中国的首…

vue前端实现多个url下载并合并为zip文件

一、安装 npm install jszip npm install file-saver 二、引入 import axios from axios import JSZip from "jszip"; import FileSaver from "file-saver"; 三、核心代码 videoData:[/video/26519f026fc012521605563015227403.mp4,/video/f7b9cdae14…

运营商大数据精准获客:我们提供精准客源渠道的最大资源体?

运营商大数据精准营销 谈起精准获客&#xff0c;竞争对手永远是为我们提供精准客源渠道的最大资源体&#xff01; 最新的获客方式&#xff0c;就是从竞争对手的手中把他们的精准客户资源变为自己的。 今年最火的运营商大数据精准营销是拒绝传统营销方式的烧钱推广&#xff0…

无人机航迹规划:七种智能优化算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划--提供MATLAB代码

一、七种算法&#xff08;DBO、LO、SWO、COA、LSO、KOA、GRO&#xff09;简介 1、蜣螂优化算法DBO 蜣螂优化算法&#xff08;Dung beetle optimizer&#xff0c;DBO&#xff09;由Jiankai Xue和Bo Shen于2022年提出&#xff0c;该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁…

【STM32】TIM2的PWM:脉冲宽度调制

PWM是一种周期固定&#xff0c;脉宽可调整的输出波形。 0.通用寄存器输出 1.捕获/比较通道1的主电路--中间部分 2.捕获/比较通道的输出部分--输出 3.通用定时器输出PWM原理 PWM波周期或者频率由ARR&#xff08;就是要进递增/递减的值&#xff09;决定&#xff0c;PWM波占空比由…

力扣每日一题 ---- 2906. 构造乘积矩阵

这题很简单(一下就能想到是前缀和的提米)&#xff0c;但是在处理12345上面需要仔细一点&#xff0c;本来我最开始想到的时候全部累乘在除掉当前数&#xff0c;但是这样就没有把12345考虑进去&#xff0c;如果他本身是12345的话&#xff0c;那么除他以外的乘积并不一定是0&#…

前端缓存机制——强缓存、弱缓存、启发式缓存

强缓存和弱缓存的主要区别是主要区别在于缓存头携带的信息不同。 强缓存&#xff1a; 浏览器发起请求&#xff0c;查询浏览器的本地缓存&#xff0c;如果找到资源&#xff0c;则直接在浏览器中使用该资源。若是未找到&#xff0c;或者资源已过期&#xff0c;则浏览器缓存返回未…

Pytest插件

官方文档&#xff1a;API Reference — pytest documentation BaseReport 定义Case结果输出 >>> from _pytest.reports import TestReport >>> test TestReport(1,1,1,pass,,running) >>> print(dir(test)) [__annotations__, __class__, __delatt…

基础课26——业务流程分析方法论

基础课25中我们提到业务流程分析方法包括以下几种&#xff1a; 价值链分析法&#xff1a;主要是找出或设计出哪些业务能够使得客户满意&#xff0c;实现客户价值最大化的业务流程。要进行价值链分析的时候可以从企业具体的活动进行细分&#xff0c;细分的具体方面可以从生产指…

UserAgent使用隧道HTTP代码示例

首先&#xff0c;我们需要安装一个Perl模块来处理HTTP请求&#xff0c;然后&#xff0c;我们需要配置代理信息&#xff0c;如proxy_host和proxy_port。接下来&#xff0c;我们可以使用正则表达式来解析网页内容并提取我们需要的信息。最后&#xff0c;我们可以将这些信息存储到…

基于DevEco Studio的OpenHarmony应用原子化服务(元服务)入门教程

一、创建项目 二、创建卡片 三、应用服务代码 Index.ets Entry Component struct Index {State TITLE: string OpenHarmony;State CONTEXT: string 创新召见未来&#xff01;;build() {Row() {Column() {Text(this.TITLE).fontSize(30).fontColor(0xFEFEFE).fontWeight(…