跳到主內容

【Next.js】建立新專案

# npx create-next-app 建立新專案
$npx create-next-app
Need to install the following packages:
create-next-app@15.4.3
Ok to proceed? (y) y

✔ What is your project named? … demo-next
✔ 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 your code inside a `src/` directory? … No / Yes #Yes
✔ Would you like to use App Router? (recommended) … No / Yes #Yes
✔ Would you like to use Turbopack for `next dev`? … No / Yes #No
✔ Would you like to customize the import alias (`@/*` by default)? … No / Yes #Yes
✔ What import alias would you like configured? … @/*
Creating a new Next.js app in /Users/srou/Documents/vscode_workspace/demo/nextjs-demo/demo-next.

Using npm.

Initializing project with template: app-tw 


Installing dependencies:
- react
- react-dom
- next

Installing devDependencies:
- typescript
- @types/node
- @types/react
- @types/react-dom
- @tailwindcss/postcss
- tailwindcss


added 59 packages, and audited 60 packages in 20s

11 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
Initialized a git repository.

Success! Created demo-next at /Users/srou/Documents/vscode_workspace/demo/nextjs-demo/demo-next
# 啟動專案 npm run dev
$npm run dev

> demo-next@0.1.0 dev
> next dev

 ⚠ Warning: Found multiple lockfiles. Selecting /Users/srou/Documents/vscode_workspace/yarn.lock.
   Consider removing the lockfiles at:
   * /Users/srou/Documents/vscode_workspace/demo/demo-next/package-lock.json

   ▲ Next.js 15.4.3
   - Local:        http://localhost:3000
   - Network:      http://192.168.1.1:3000 

 ✓ Starting...
 ✓ Ready in 2.1s

當你使用 npx create-next-app 建立 Next.js 專案時,CLI 會引導你一步一步選擇要開啟哪些功能。以下是每一個步驟的說明,以及如果最後選擇 不設定 import alias(例如 @/*,日後如何補上設定。


🧱 建立 Next.js 專案步驟說明

1. What is your project named?

輸入專案資料夾名稱,例如 demo-next

2. Would you like to use TypeScript?

是否使用 TypeScript(推薦選 Yes,提供型別安全)。

  • 選 Yes → 自動生成 tsconfig.json

  • 選 No → 使用 JavaScript + jsconfig.json


3. Would you like to use ESLint?

是否啟用 ESLint 做程式碼檢查。

  • 選 Yes → 建立 .eslintrc.json 等設定,避免潛在錯誤。


4. Would you like to use Tailwind CSS?

是否加入 Tailwind CSS 做 UI 樣式設計。


5. Would you like your code inside a src/ directory?

是否將程式碼放入 src/ 子資料夾中。

  • 選 Yes → 專案結構更清晰,建議開啟。


6. Would you like to use App Router? (recommended)

啟用 Next.js 13+ 的新 App Router 架構(基於 app/ 資料夾)。

  • 選 Yes → 使用新路由系統,支援 Server Components 等現代功能。


7. Would you like to use Turbopack for next dev?

是否使用新一代 Turbopack 開發模式(取代 Webpack 開發時編譯器)。

  • 只會影響 npm run dev 時的速度

  • 生產環境仍使用 Webpack


8. Would you like to customize the import alias (@/* by default)?

是否要自訂 import 路徑別名 alias

✅ 選 Yes:

  • CLI 會再問你輸入別名(例如 @/*),

  • 會幫你自動建立 paths 設定(在 tsconfig.jsonjsconfig.json

❌ 選 No:

  • 不會設定別名,之後你手動寫 ../../components/... 等麻煩路徑。


🔧 若選擇 "No",之後如何補上 import alias?

▶ 1. 找出設定檔

如果你是:

  • 用 TypeScript → 修改 tsconfig.json

  • 用 JavaScript → 修改 jsconfig.json

▶ 2. 修改範例如下(代表 @ 指向 src 資料夾):

{
  "compilerOptions": {
    "baseUrl": ".",           // 專案根目錄
    "paths": {
      "@/*": ["src/*"]
    }
  }
}

▶ 3. 如果你沒使用 src/,就寫:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["*"]
    }
  }
}

📁 目錄結構對照範例

若你有勾選使用 src/,專案結構可能如下:

demo-next/
├── src/
│   ├── app/
│   ├── components/
│   └── ...
├── tsconfig.json

則你就能寫這樣的路徑:

import { Header } from '@/components/Header'

✅ 總結:建立流程與 alias 設定對照

功能 說明
是否設定 alias (@) create-next-app 最後一個選項
若選否,日後可透過 ts/jsconfig 設定 ✅ 很簡單,加一段 "paths" 即可
是否需要設定 next.config.js 通常不需要(除非使用 webpack plugin)