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

本文介绍了Next.js,一个用于生产环境的React框架,它提供了静态和服务器端融合渲染、TypeScript支持、快速开发工具、路由预取等特性。指南涵盖了项目创建、Node.js版本管理、代码规范设置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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-blog

pnpm 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

  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

React全栈开发涉及到前端和后端的技术组合,通常包括但不限于以下几个方面:React本身作为前端视图层技术、状态管理库(如Redux)、路由控制(如React Router)、服务端渲染(SSR, 如Next.js),以及用于构建API的Node.js及其Express框架等。为了帮助您更好地理解和掌握这一整套流程和技术栈,以下是针对不同层次的学习资料推荐: ### 1. React基础入门 如果您刚开始接触React,首先需要熟悉其核心概念与语法结构: - [官方文档](https://reactjs.org/docs/getting-started.html):这是最权威且详尽的信息来源,涵盖了从安装配置到高级特性的所有主题。 - YouTube视频教程或Udemy课程:“React - The Complete Guide”是一个非常受欢迎的选择,适合初学者快速上手。 ### 2. 状态管理和路由控制 随着应用复杂度增加,良好的架构设计变得至关重要: - **Redux**: 学习如何使用Redux进行全局状态管理,参考[官网指南](http://redux.js.org/) 和配套视频系列来理解原理并动手练习编写简单的action creators及reducers. - **React Router** : 掌握单页面应用程序(SPA)内部导航机制的关键技能之一就是了解此插件的工作方式,请参阅[官方网站](https://reactrouter.com/)提供的示例项目以获取更多启发. ### 3. SSR和服务端渲染增强体验 为了让您的网站加载更快并且对SEO友好,您可以尝试引入服务器端预渲染方案: - Next.js 是目前最受欢迎的一个解决方案,提供了开箱即用的功能集,同时兼容多种数据库连接器和其他第三方集成选项。强烈建议查看他们的[文档中心](https://nextjs.org/docs),里面包含了许多实用案例研究供参考。 ### 4. API后端搭建 虽然React专注于客户端UI展示层面,但在真实世界里还需要配合强大的后台支撑才能构成完整的Web系统。因此接下来就需要探索一下怎样创建RESTful风格或者GraphQL形式的数据接口了: - Express.js + Node.js 组合非常适合新手开发者起步,在网上搜索诸如"Build REST APIs with Express and MongoDB"之类的免费在线教学资源就可以找到大量可供借鉴的实际例子。 - 如果想试试新兴趋势的话不妨看看 Apollo Server 结合 Prisma ORM 实现 GraphQL 查询的能力! ### 5. 工具链整合与DevOps实践 最后但同样重要的是要学会运用现代工程化手段提升工作效率,确保产品顺利上线发布: - Webpack/Babel/WebStorm/VS Code/Eslint/Prettier这些都是日常工作中不可或缺的好帮手,花些时间去弄清楚它们各自的作用范围,并合理配置成一套流畅的工作流将会事半功倍。 - CI/CD流水线建设也是不容忽视的一环——Jenkins/GitLabCI/CircleCI等等平台都支持自动化部署操作,能够极大简化运维人员负担。 综上所述,以上只是冰山一角而已,具体选择哪条路径取决于个人兴趣爱好及职业规划方向等因素综合考量而定。希望这些建议能给正在寻找合适学习路线的朋友带来一些启示!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值