当前位置: 首页 > news >正文

环境搭建与你的第一个 Next.js 应用

环境搭建与你的第一个 Next.js 应用

作者:码力无边


在上一篇文章中,我们探讨了“为什么”要选择 Next.js。我们了解了它如何通过预渲染、文件路由和内置优化等特性,解决了传统 React 开发中的诸多痛点。理论总是让人兴奋,但真正的乐趣在于实践。

今天,我们将卷起袖子,一步步搭建好开发环境,并使用官方工具 create-next-app 创建并运行我们的第一个 Next.js 应用。准备好了吗?Let’s go!

第一步:环境准备 (Prerequisites)

在开始之前,请确保你的电脑上安装了以下两个核心工具:

  1. Node.js: Next.js 是一个基于 Node.js 的 JavaScript 运行时环境。你需要安装 18.17 或更高版本

    • 如何检查? 打开你的终端(在 Windows 上是 Command Prompt 或 PowerShell,在 macOS 上是 Terminal),输入 node -v。如果你看到了版本号并且它符合要求,那就没问题了。
    • 如何安装? 如果你没有安装或版本过低,请访问 Node.js 官网 下载并安装最新的 LTS (长期支持) 版本。安装 Node.js 的同时,也会自动安装 npm (Node Package Manager),它是我们用来管理项目依赖的工具。
  2. 代码编辑器 (Code Editor): 一个好的代码编辑器能让你的开发效率事半功倍。我强烈推荐 Visual Studio Code (VS Code),它免费、功能强大,并且拥有庞大的插件生态系统。

环境就绪,我们可以正式开始了!

第二步:使用 create-next-app 创建项目

Next.js 官方提供了一个非常方便的脚手架工具 create-next-app,它可以快速帮我们生成一个配置完备的项目骨架。

打开你的终端,cd 到你希望存放项目的文件夹,然后运行以下命令:

npx create-next-app@latest

命令解析:

  • npx 是 npm 附带的一个工具,它允许你运行一个 npm 包中的可执行文件,而无需将其全局安装到你的电脑上。这能确保你每次使用的都是最新版本的 create-next-app
  • create-next-app@latest 就是我们要运行的命令。

运行后,安装程序会以交互式的方式询问你一系列问题,来定制你的项目。下面是常见问题的解释和建议:

✔ What is your project named? … my-nextjs-blog
✔ Would you like to use TypeScript? … No / Yes  (建议选择 Yes)
✔ Would you like to use ESLint? … No / Yes      (强烈建议 Yes)
✔ Would you like to use Tailwind CSS? … No / Yes (建议选择 Yes)
✔ Would you like to use `src/` directory? … No / Yes (建议选择 Yes)
✔ Would you like to use App Router? (recommended) … No / Yes (强烈建议 Yes)
✔ Would you like to customize the default import alias? … No / Yes (初学者建议 No)
  • Project name?: 给你的项目起个名字,比如 my-nextjs-blog
  • Use TypeScript?: TypeScript 为 JavaScript 提供了类型安全,是现代 Web 开发的趋势。建议选择 “Yes”,我们的专栏后续也会基于 TypeScript。
  • Use ESLint?: 这是一个代码检查工具,能帮助你发现代码中的错误和不规范的写法,保证代码质量。强烈建议 “Yes”
  • Use Tailwind CSS?: 一个非常流行的原子化 CSS 框架,Next.js 对它有很好的集成支持。建议选择 “Yes”,它能极大提升我们写样式的效率。
  • Use src/ directory?: 将你的应用代码(如组件、页面)都放在一个 src 文件夹内。这是一种常见的项目组织方式,能让项目结构更清晰。建议选择 “Yes”
  • Use App Router? (recommended): 这是 Next.js 13 之后推出的新一代路由系统,也是未来的方向,功能更强大。强烈建议 “Yes”,我们的专栏将重点介绍它。
  • Customize the default import alias?: 自定义模块导入别名,比如用 @/* 代替 ../../../*。初学者可以先选择 “No”,保持默认设置即可。

回答完所有问题后,工具会自动创建项目文件夹,并安装所有必要的依赖。这个过程可能需要一两分钟。

第三步:项目结构一览

安装完成后,让我们进入项目目录并看看里面都有什么。

cd my-nextjs-blog

打开 VS Code 来查看项目文件夹:

code .

你会看到类似这样的目录结构:

my-nextjs-blog/
├── src/
│   └── app/
│       ├── favicon.ico
│       ├── globals.css
│       ├── layout.tsx      # 根布局
│       └── page.tsx        # 首页
├── public/                 # 静态资源文件夹
│   ├── next.svg
│   └── vercel.svg
├── .eslintrc.json          # ESLint 配置文件
├── next.config.mjs         # Next.js 配置文件
├── package.json            # 项目依赖和脚本
├── postcss.config.js       # PostCSS 配置 (用于 Tailwind)
├── tailwind.config.ts      # Tailwind CSS 配置文件
└── tsconfig.json           # TypeScript 配置文件

别被这么多文件吓到!我们初期只需要关注最重要的几个:

  • src/app/: 这是我们应用的核心。在 App Router 模式下,这个文件夹里的文件和文件夹结构直接定义了你的网站路由。
  • src/app/layout.tsx: 这是根布局文件。所有页面都会被包裹在这个布局里,通常用来定义全局的 <html><body> 标签,以及引入全局样式。
  • src/app/page.tsx: 这是你的网站主页,对应于 / 路由。
  • public/: 用于存放静态文件,如图片、图标等。这里的文件可以通过根路径 /直接访问。
  • package.json: 定义了项目信息、依赖库以及可以运行的脚本命令(如 dev, build, start)。

第四步:启动你的应用

激动人心的时刻到了!在你的终端里(确保你仍然在项目根目录下),运行以下命令:

npm run dev

这个命令会启动一个本地开发服务器。你会在终端看到类似这样的输出:

✓ Ready in 2.8s
○ Compiling / ...
✓ Compiled / in 198ms
- Local:    http://localhost:3000

现在,打开你的浏览器,访问 http://localhost:3000。

你应该能看到 Next.js 的默认欢迎页面!

第五步:做出你的第一个修改

让我们来体验一下 Next.js 的热更新 (Hot Reloading) 功能。

  1. 在 VS Code 中,打开 src/app/page.tsx 文件。

  2. 找到页面上的主要标题部分,它可能是一段被 <p><h1> 标签包裹的文本。

  3. 把它修改成你自己的话,比如:

    // ... 其他代码
    <main className="flex min-h-screen flex-col items-center justify-between p-24"><h1>你好,我的第一个 Next.js 应用!</h1>{/* ... 其他代码 */}
    </main>
    // ... 其他代码
    
  4. 按下 Ctrl + S (或 Cmd + S) 保存文件。

现在,切换回你的浏览器。你会发现页面已经自动更新了,根本不需要你手动刷新!这就是热更新的魔力,它极大地提升了我们的开发体验。

总结

恭喜你!你已经成功完成了 Next.js 开发的第一步:

  • ✅ 确认了 Node.js 环境。
  • ✅ 使用 create-next-app 初始化了一个功能完备的项目。
  • ✅ 了解了基本的项目结构。
  • ✅ 成功启动了开发服务器,并看到了你的应用。
  • ✅ 体验了神奇的热更新功能。

你已经为接下来的学习打下了坚实的基础。在下一篇文章中,我们将深入探讨 Next.js 最核心、最直观的特性之一:基于文件系统的路由机制。我们将学习如何创建新页面、如何建立嵌套路由,以及如何处理动态路由。敬请期待!


文章转载自:

http://gknPt8Ce.cwqpL.cn
http://lCj8lRdj.cwqpL.cn
http://D37waiW0.cwqpL.cn
http://OoABglgP.cwqpL.cn
http://l8W3ts8C.cwqpL.cn
http://9j2DQZWb.cwqpL.cn
http://BXLdMqDg.cwqpL.cn
http://6hLCEs8L.cwqpL.cn
http://eCwRen1S.cwqpL.cn
http://IPZZAMaS.cwqpL.cn
http://20SB5S5S.cwqpL.cn
http://h02xNqdS.cwqpL.cn
http://2TaNQVt0.cwqpL.cn
http://1xuVKq0L.cwqpL.cn
http://vCzBP4xL.cwqpL.cn
http://hJn9zwSL.cwqpL.cn
http://knWn25d6.cwqpL.cn
http://Yg4QxgQ9.cwqpL.cn
http://mmfT99Al.cwqpL.cn
http://Ay1ZYIEE.cwqpL.cn
http://SbgkO5BZ.cwqpL.cn
http://nz9QqzZd.cwqpL.cn
http://yg8GnZeF.cwqpL.cn
http://4Slgelwc.cwqpL.cn
http://DZTAAV6O.cwqpL.cn
http://4gtxKsrM.cwqpL.cn
http://JJBHngYi.cwqpL.cn
http://Hb3dofkV.cwqpL.cn
http://yDEwRx7X.cwqpL.cn
http://9Wc6xluo.cwqpL.cn
http://www.dtcms.com/a/369465.html

相关文章:

  • 集成学习 | MATLAB基于CNN-LSTM-Adaboost多输入单输出回归预测
  • Java 线程重点 面试笔记(线程状态,安全停止线程..)
  • 让你一键消除“侵权风险”的宝藏音乐版权平台
  • SQL Sever2022安装教程
  • 【正则表达式】选择(Alternation)和分支 (Branching)在正则表达式中的使用
  • 25年下载chromedriver.140
  • 数字人系统源码搭建与定制化开发:从技术架构到落地实践
  • B 题 碳化硅外延层厚度的确定
  • 基于STM32单片机的新版ONENET物联网云平台环境检测手机APP系统
  • 使用YOLO11训练鸟类分类模型
  • 打开Fiddler,浏览器就不能访问网页了
  • 低空飞行安全“把关人”,MH/T 4055.3-2022 测试标准深度解读
  • 客户案例 | 半导体材料领军企业选择燕千云ITSM,打造“零”中断运维体系
  • STM32H7的PA0_C、PA1_C、PC2_C、PC3_C的使用
  • EEMD-HHT算法
  • 如何快速集成直播美颜SDK?人脸美型功能开发全流程详解
  • 3D设计软件终极对决:从建模到渲染,哪款才是你的本命神器?
  • 【Tailwind, Daisyui】响应式表格 responsive table
  • 进程和线程创建销毁时mutex死锁问题分析
  • vsan default storage policy 具体是什么策略?
  • 整理了几道前端面试题
  • 点控云智能客服:以AI重塑服务体验,登顶行业第一的革新之路
  • 餐饮营销:不是 “烧钱”,是 “递价值” 的落地术
  • 解释一下roberta,bert-chinese和bert-case有啥区别还有bert-large这些
  • ZeroMQ 编译 项目使用流程文档
  • 零知开源——基于STM32F103RBT6的智能风扇控制系统设计与实现
  • (GeSCD)Towards Generalizable Scene Change Detection论文精读(逐段解析)
  • A股大盘数据-20250905 分析
  • 代码版本控制
  • 学习心得分享