# Automatic Installation
- 我們建議使用 create-next-app 開始一個新的 Next.js 應用,它會自動為你設置所有內容。
- 要建立專案,請執行以下指令:
Terminal:npx create-next-app@latest
- 安裝過程中,你會看到以下提示:
Terminal: - 專案名稱是什麼?
my-app
- 是否使用 TypeScript?
No / Yes
- 是否使用 ESLint?
No / Yes
- 是否使用 Tailwind CSS?
No / Yes
- 是否使用
src/
目錄?No / Yes
- 是否使用 App Router?(建議使用)
No / Yes
- 是否自訂預設的匯入別名(@/*)?
No / Yes
- 你想要設定的匯入別名是什麼?
@/*
- 專案名稱是什麼?
- 回答提示後,create-next-app 會建立一個以你的專案名稱命名的資料夾,並安裝所需的相依項。
- 如果你是 Next.js 的新手,請查看專案結構文件,了解應用程式中所有可能的檔案和資料夾。
- 注意事項:
- Next.js 現在預設支援 TypeScript、ESLint 和 Tailwind CSS 配置。
- 你可以選擇在專案的根目錄中使用
src
目錄,以將應用程式的程式碼與配置檔案分開。
# Manual Installation
- 手動創建一個新的 Next.js 應用時,安裝所需的套件:
Terminal:npm install next@latest react@latest react-dom@latest
- 開啟
package.json
檔案,並新增以下 scripts:
package.json:{
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
}
} - 這些 scripts 指的是應用程式開發的不同階段:
dev
: 執行next dev
,以開發模式啟動 Next.js。build
: 執行next build
,以生產環境建構應用程式。start
: 執行next start
,啟動 Next.js 生產伺服器。lint
: 執行next lint
,設置 Next.js 內建的 ESLint 配置。
- 建立目錄:
- Next.js 使用檔案系統路由,應用程式中的路由由檔案結構決定。
app
目錄:- 對於新應用程式,建議使用 App Router。此路由允許使用 React 的最新功能,是基於社群回饋的 Pages Router 演進版本。
- 建立
app/
資料夾,然後新增layout.tsx
和page.tsx
檔案,這些檔案會在使用者訪問應用程式的根目錄(/
)時渲染。
- App 資料夾結構:
- 在
app/layout.tsx
裡創建根佈局,包含必需的<html>
和<body>
標籤: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>
} - 注意事項:如果你忘記建立
layout.tsx
,當你執行next dev
開發伺服器時,Next.js 會自動創建這個檔案。
- 在
pages
目錄(選擇性):- 如果你更喜歡使用 Pages Router,可以在專案根目錄創建
pages/
資料夾。 - 在
pages/
資料夾中新增index.tsx
,這會是你的首頁(/
):export default function Page() {
return <h1>Hello, Next.js!</h1>
} - 在
pages/
資料夾中新增_app.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>
)
}
- 如果你更喜歡使用 Pages Router,可以在專案根目錄創建
- 注意事項:
- 雖然你可以在同一專案中同時使用兩種路由,但
app
目錄中的路由優先於pages
。我們建議在新專案中只使用一種路由,以避免混淆。
- 雖然你可以在同一專案中同時使用兩種路由,但
public
目錄(選擇性):- 建立
public
資料夾來存放靜態資源,如圖片、字型等。檔案可以從基底 URL(/
)開始在程式碼中引用。
- 建立
# Run the Development Server
- 執行
npm run dev
來啟動開發伺服器。 - 造訪
http://localhost:3000
來查看你的應用程式。 - 編輯
app/page.tsx
(或pages/index.tsx
)檔案,並儲存以在瀏覽器中查看更新後的結果。