1 通过npx创建一个nextjs项目
通过命令创建:
npx create-next-app@latest
得到如下项目结构图:
my-app
- src //源代码目录
- app //引用目录
- favicon.ico //网站图标
- globals.css //全局css
- layout.tsx //布局文件
- page.tsx //页面 路径"/"
- next.config.mjs //next配置
- package.json //包配置
- tailwind.config.ts //tailwind配置
- postcss.config.mjs //postcss配置
- tsconfig.json //项目配置文件,包括编译选项、代码检查
2 项目结构
目录:
app | 应用路由器 |
pages | 页面路由器 |
public | 要提供的静态资产 |
src | 可选的应用程序源文件夹 |
根文件
next.config.js | Next.js的配置文件 |
package.json | 项目依赖项和脚本 |
instrumentation.ts | OpenTelemetry and Instrumentation 文件 |
middleware.ts | Next.js请求中间件 |
.env | 环境变量 |
.env.local | 局部环境变量 |
.env.production | 生产环境变量 |
.env.development | 开发环境变量 |
.eslintrc.json | ESLint 的配置文件 |
.gitignore | 要忽略的 Git 文件和文件夹 |
next-env.d.ts | 用于 Next.js 的 TypeScript 声明文件 |
tsconfig.json | TypeScript 的配置文件 |
jsconfig.json | JavaScript 的配置文件 |
2.1 app目录
package.json:
dev
:运行next dev以开发模式启动Next.js。build
:运行next build构建用于生产的应用程序。start
:运行以启动Next.js生产服务器。lint
:运行next lint设置Next.js的内置 ESLint 配置。
app/layout.tsx:
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="en">
<body>{children}</body>
</html>
)
}
app/page.tsx:(这是页面)
export default function Page() {
return <h1>Hello, Next.js!</h1>
}
2.2 pages目录(可选)
如果您更喜欢使用 Pages Router 而不是 App Router,则可以在项目的根目录下创建一个pages目录。
主页pages/index.tsx:
export default function Page() {
return <h1>Hello, Next.js!</h1>
}
布局pages/_layout.tsx:
import type { AppProps } from 'next/app'
export default function App({ Component, pageProps }: AppProps) {
return <Component {...pageProps} />
}
自定义文档pages/_document.tsx(在里面添加一个文件来控制服务器的初始响应)
import { Html, Head, Main, NextScript } from 'next/document'
export default function Document() {
return (
<Html>
<Head />
<body>
<Main />
<NextScript />
</body>
</Html>
)
}
2.3 public目录
创建一个文件夹来存储静态资产,例如图像、字体等。然后,代码可以从基 URL () 开始引用目录中的文件。public public/
3 项目启动
yarn install
yarn dev
参考文章:
入门:项目结构 |Next.js (nextjs.org)