การสร้าง 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การสร้าง Nx Monorepo ด้วยแอป React
- ไลบรารีร่วมและแพ็กเกจภายใน
- คำสั่ง Nx Affected และการแคช
- ตัวสร้างโค้ดและการทำงานอัตโนมัติของพื้นที่ทำงาน