跳到主要内容

环境配置

本章将介绍如何搭建 Next.js 开发环境,创建第一个 Next.js 项目。

前置要求

在开始之前,请确保你的系统已安装:

  • Node.js:18.18 或更高版本
  • 包管理器:npm、yarn、pnpm 或 bun
  • 代码编辑器:推荐 VS Code

检查 Node.js 版本

node -v
# 应该显示 v18.18.0 或更高版本

安装 Node.js

如果尚未安装 Node.js,推荐使用以下方式:

方式一:官网下载

访问 Node.js 官网,下载 LTS 版本。

方式二:使用 nvm(推荐)

# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# 安装 Node.js
nvm install --lts

# 使用 LTS 版本
nvm use --lts

创建项目

使用 create-next-app

Next.js 提供了官方脚手架工具 create-next-app,可以快速创建新项目:

npx create-next-app@latest my-next-app

交互式配置

运行命令后,会提示选择配置选项:

What is your project named? my-next-app
Would you like to use TypeScript? No / Yes
Would you like to use ESLint? No / Yes
Would you like to use Tailwind CSS? No / Yes
Would you like your code inside a `src/` directory? No / Yes
Would you like to use App Router? No / Yes
Would you like to use Turbopack for `next dev`? No / Yes
Would you like to customize the import alias? No / Yes

推荐配置

对于新项目,推荐以下配置:

  • TypeScript:Yes(类型安全)
  • ESLint:Yes(代码规范)
  • Tailwind CSS:Yes(样式方案)
  • src/ 目录:Yes(代码组织)
  • App Router:Yes(新路由系统)
  • Turbopack:Yes(更快的开发体验)

一键创建

也可以通过命令行参数直接指定配置:

npx create-next-app@latest my-next-app \
--typescript \
--tailwind \
--eslint \
--app \
--src-dir \
--turbopack \
--import-alias "@/*"

项目结构

创建完成后,项目结构如下:

my-next-app/
├── src/
│ └── app/
│ ├── favicon.ico
│ ├── globals.css
│ ├── layout.tsx
│ └── page.tsx
├── public/
│ └── images/
├── .eslintrc.json
├── .gitignore
├── next.config.ts
├── package.json
├── postcss.config.mjs
├── README.md
├── tailwind.config.ts
└── tsconfig.json

目录说明

目录/文件说明
src/app/App Router 核心目录,存放页面和布局
src/app/page.tsx首页组件(路由 /
src/app/layout.tsx根布局组件
src/app/globals.css全局样式文件
public/静态资源目录
next.config.tsNext.js 配置文件
tailwind.config.tsTailwind CSS 配置
tsconfig.jsonTypeScript 配置

启动开发服务器

进入项目目录,启动开发服务器:

cd my-next-app
npm run dev

终端会显示:

   ▲ Next.js 15.0.0
- Local: http://localhost:3000
- Environments: .env

✓ Starting...
✓ Ready in 1.2s

打开浏览器访问 http://localhost:3000,你将看到 Next.js 欢迎页面。

核心文件解析

page.tsx - 页面组件

// src/app/page.tsx
export default function Home() {
return (
<main className="flex min-h-screen flex-col items-center justify-center">
<h1 className="text-4xl font-bold">Hello Next.js!</h1>
</main>
);
}

说明

  • page.tsx 是路由页面组件
  • 文件位置决定路由路径
  • 必须默认导出一个 React 组件

layout.tsx - 布局组件

// src/app/layout.tsx
import type { Metadata } from "next";
import "./globals.css";

export const metadata: Metadata = {
title: "我的 Next.js 应用",
description: "使用 Next.js 构建",
};

export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="zh-CN">
<body>{children}</body>
</html>
);
}

说明

  • layout.tsx 定义页面共享布局
  • 根布局必须包含 <html><body> 标签
  • 可以定义页面元数据(metadata)

globals.css - 全局样式

/* src/app/globals.css */
@tailwind base;
@tailwind components;
@tailwind utilities;

/* 自定义全局样式 */
body {
font-family: system-ui, sans-serif;
}

常用命令

开发命令

# 启动开发服务器
npm run dev

# 启动开发服务器(指定端口)
npm run dev -- -p 4000

# 使用 Turbopack(更快)
npm run dev -- --turbopack

构建命令

# 构建生产版本
npm run build

# 启动生产服务器
npm run start

# 导出静态站点
npm run build && npm run export

其他命令

# 代码检查
npm run lint

# 类型检查
npx tsc --noEmit

VS Code 配置

推荐扩展

安装以下 VS Code 扩展提升开发体验:

  1. Next.js snippets:代码片段
  2. Tailwind CSS IntelliSense:Tailwind 智能提示
  3. ESLint:代码规范检查
  4. Prettier:代码格式化

settings.json 配置

{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"typescript.tsdk": "node_modules/typescript/lib"
}

环境变量

Next.js 支持环境变量,创建 .env.local 文件:

# .env.local
DATABASE_URL="postgresql://localhost:5432/mydb"
API_KEY="your-api-key"

# 客户端可访问的环境变量(以 NEXT_PUBLIC_ 开头)
NEXT_PUBLIC_API_URL="https://api.example.com"

使用环境变量

// 服务端使用
console.log(process.env.DATABASE_URL);

// 客户端使用
console.log(process.env.NEXT_PUBLIC_API_URL);
安全提示

不要将敏感信息放在 NEXT_PUBLIC_ 开头的环境变量中,这些变量会被打包到客户端代码中。

小结

本章我们学习了:

  1. 安装 Node.js 和配置开发环境
  2. 使用 create-next-app 创建项目
  3. 理解项目结构和核心文件
  4. 启动开发服务器
  5. 配置 VS Code 开发环境
  6. 使用环境变量

练习

  1. 创建一个新的 Next.js 项目,使用 TypeScript 和 Tailwind CSS
  2. 修改首页内容,显示你的名字和一段介绍
  3. 添加一个环境变量并在页面中显示
  4. 尝试修改布局组件,添加一个页脚