0Pricing
React Academy · บทเรียน

การสร้าง Nx Monorepo ด้วยแอป React

สร้างโครงร่างพื้นที่ทำงาน Nx เพิ่มแอป React และทำความเข้าใจกราฟของโปรเจกต์

การสร้าง Nx Monorepo ด้วยแอป React เป็นบทเรียน React Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน React Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงใช้ Nx

Nx เป็นระบบสร้างอัจฉริยะสำหรับโมโนรีโพ โดยมีการเรียกใช้งานตามส่วนที่ได้รับผลกระทบ (สร้างและทดสอบเฉพาะสิ่งที่เปลี่ยนแปลง) การแคช (ไม่เรียกใช้งานที่ไม่เปลี่ยนแปลงซ้ำ) และตัวสร้างสำหรับสร้างโครงแอปกับไลบรารี

การสร้างพื้นที่ทำงาน Nx ใหม่

สร้างโครงพื้นที่ทำงาน Nx ใหม่ที่กำหนดค่าไว้ล่วงหน้าสำหรับ React

# Create workspace:
npx create-nx-workspace@latest myorg --preset=react-monorepo
# or for Next.js:
npx create-nx-workspace@latest myorg --preset=next

โครงสร้างพื้นที่ทำงาน

Nx จัดระเบียบโค้ดเป็น apps/ (แอปที่นำไปใช้งานได้) และ libs/ (ไลบรารีที่ใช้ร่วมกัน) แต่ละโปรเจกต์มี project.json ของตนเองพร้อมเป้าหมายของงาน

myorg/
  apps/
    web/           # React SPA
    admin/         # Admin React SPA
    api/           # NestJS backend
  libs/
    ui/            # shared UI components
    data-access/   # data fetching hooks
    utils/         # shared utilities
  nx.json          # workspace config
  package.json     # single package.json

การเพิ่มแอป React

ใช้ตัวสร้าง React ของ Nx เพื่อเพิ่มแอปใหม่พร้อมการกำหนดค่าที่เชื่อมต่อไว้ล่วงหน้าทั้งหมด

# Add a new React app:
npx nx generate @nx/react:app customer-portal

# Add a Next.js app:
npx nx generate @nx/next:app marketing

การเรียกใช้งาน

สร้าง ทดสอบ ตรวจรูปแบบ และให้บริการสำหรับแต่ละโปรเจกต์หรือทุกโปรเจกต์

# Serve a specific app:
npx nx serve web

# Build all apps:
npx nx run-many --target=build --all

# Test a specific library:
npx nx test ui

กราฟโปรเจกต์

nx graph เปิดการแสดงภาพแบบโต้ตอบของแอปและไลบรารีทั้งหมด รวมถึงการพึ่งพาระหว่างกัน เพื่อดูว่าโปรเจกต์ใดพึ่งพาไลบรารีใด

npx nx graph

การแคชของ Nx

Nx แคชผลลัพธ์ของงานไว้ในเครื่อง การเรียกใช้งานที่ไม่เปลี่ยนแปลงซ้ำจะดึงผลลัพธ์จากแคชได้ทันที Nx Cloud ขยายการแคชไปยังแคชระยะไกลที่สมาชิกในทีมและ CI ใช้ร่วมกัน

# First run: builds and caches
npx nx build web  # ~30s

# Second run (no changes): cache hit
npx nx build web  # <1s — served from cache

ไปป์ไลน์ของงาน

กำหนดการพึ่งพาของงานใน nx.json เมื่อเรียกใช้ build ระบบจะเรียกใช้ build ของการพึ่งพาต้นทางทั้งหมดก่อนโดยอัตโนมัติ

// nx.json
{
  "targetDefaults": {
    "build": {
      "dependsOn": ["^build"], // run dependency builds first
      "cache": true
    },
    "test": {
      "cache": true
    }
  }
}

แท็กสำหรับการบังคับใช้

ติดแท็กให้โครงการ (เช่น scope:ui, type:app) และใช้กฎของ ESLint เพื่อป้องกันไม่ให้แอปนำเข้าโค้ดภายในของแอปอื่น

// project.json
{
  "tags": ["scope:web", "type:app"]
}

// .eslintrc.json
{
  "rules": {
    "@nx/enforce-module-boundaries": ["error", {
      "depConstraints": [
        { "sourceTag": "type:app", "onlyDependOnLibsWithTags": ["type:lib"] }
      ]
    }]
  }
}

นามแฝงเส้นทาง TypeScript

Nx จะตั้งค่า tsconfig.base.json ด้วยนามแฝงเส้นทางโดยอัตโนมัติ เพื่อให้คุณนำเข้าไลบรารีที่ใช้ร่วมกันเป็น @myorg/ui แทนการใช้เส้นทางสัมพัทธ์ที่ซ้อนลึกหลายระดับ

// tsconfig.base.json (auto-generated)
{
  "compilerOptions": {
    "paths": {
      "@myorg/ui": ["libs/ui/src/index.ts"],
      "@myorg/utils": ["libs/utils/src/index.ts"]
    }
  }
}

// Usage in apps:
import { Button } from '@myorg/ui';

ตรวจสอบความเข้าใจ

คำสั่ง nx affected --target=build ทำอะไรในโมโนเรโปของ Nx

ทบทวน

สร้าง Nx workspace ด้วย create-nx-workspace ใช้ nx generate สำหรับแอปและไลบรารี ใช้ nx serve/build/test สำหรับงาน และใช้ nx affected ใน CI เพื่อประมวลผลเฉพาะโครงการที่มีการเปลี่ยนแปลง แคชช่วยให้งานที่ไม่มีการเปลี่ยนแปลงส่งผลลัพธ์กลับมาได้ทันที

คำถามที่พบบ่อย

บทเรียน “การสร้าง Nx Monorepo ด้วยแอป React” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การสร้าง Nx Monorepo ด้วยแอป React” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส React Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การสร้าง Nx Monorepo ด้วยแอป React”

สร้างโครงร่างพื้นที่ทำงาน Nx เพิ่มแอป React และทำความเข้าใจกราฟของโปรเจกต์ คุณปฏิบัติ React Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน React Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน React Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การสร้าง Nx Monorepo ด้วยแอป React” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน React Academy นี้ได้ไหม

ได้ บทเรียน React Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การสร้าง Nx Monorepo ด้วยแอป React
  2. ไลบรารีร่วมและแพ็กเกจภายใน
  3. คำสั่ง Nx Affected และการแคช
  4. ตัวสร้างโค้ดและการทำงานอัตโนมัติของพื้นที่ทำงาน
← กลับไปที่ React Academy