การดาวน์โหลด · Downloads (setup.sh / setup.ps1 / README / zip)
On this page
ขั้น Export ของตัวสร้างมีไฟล์ให้ดาวน์โหลด 4 แบบ ทั้งหมดสร้างในเบราว์เซอร์ของคุณเอง (client-side) จากขั้นตอนที่แสดงอยู่บนหน้าจอ ไม่มีอะไรถูกส่งมาที่เซิร์ฟเวอร์ของเรา ในหน้านี้เราจะเปิดให้ดูว่าสคริปต์ข้างในหน้าตาเป็นอย่างไร และทำไมเราเขียนแบบนั้น
ไฟล์แต่ละแบบ#
| ไฟล์ | สำหรับ | สร้างโดย |
|---|---|---|
setup.sh |
macOS / Linux / WSL (bash) | toBash() |
setup.ps1 |
Windows PowerShell | toPowerShell() (บรรทัดลงท้าย CRLF) |
README.md |
เอกสารโปรเจกต์ไทยหรืออังกฤษตามภาษาที่เลือก | toReadme() |
<project>-starter.zip |
ทั้งหมดข้างบน + nvx-stack.json + โฟลเดอร์ starter-files/ |
buildStarterZip() |
ข้างใน setup.sh มีอะไร และทำไมเราเขียนแบบนี้#
- โหลด nvm ก่อน (
. "$NVM_DIR/nvm.sh") เพราะ nvm เป็น shell function ไม่ใช่ไฟล์โปรแกรม สคริปต์ที่ไม่ได้ source จะหาnvmไม่เจอ set -eo pipefailหยุดทันทีเมื่อคำสั่งใดล้มเหลว เพื่อไม่ให้ขั้นต่อไปทำงานบนสถานะที่พัง- ฟังก์ชัน
stepพิมพ์หัวข้อ==> 3/7 ...และverifyรันคำสั่งตรวจสอบ ถ้าไม่ผ่านจะเตือน[warn]แต่ไม่หยุดสคริปต์ - ไฟล์เริ่มต้นเขียนด้วย heredoc แบบ
<<'NVX_EOF'(มี quote) จึงไม่มีการแทนค่าตัวแปร sanitizer ปฏิเสธไฟล์ที่มีบรรทัดNVX_EOFเพื่อกันการหลุดออกจาก heredoc - ขั้นที่มี
requires(เช่น nvm) ถูกห่อด้วยif command -v nvm ...ถ้าไม่พบจะข้ามพร้อมคำเตือน - ขั้นชนิด longRunning (dev server), publish (npm publish, twine upload) และ manual ถูก คอมเมนต์ไว้ พร้อมหมายเหตุ เพราะ dev server จะค้างสคริปต์ไว้ และการ publish เป็นการกระทำสาธารณะที่ย้อนกลับไม่ได้
setup.ps1 ทำแบบเดียวกันด้วย $ErrorActionPreference = "Stop", ฟังก์ชัน Step, Assert-Ok (ตรวจ $LASTEXITCODE หลังทุกคำสั่ง), Write-NvxFile (เขียนไฟล์ด้วย here-string @' ... '@) และ Verify
วิธีรันอย่างปลอดภัย#
เราแนะนำให้อ่านก่อนรันเสมอ คัดลอกคำสั่งด้านล่างไปใช้ได้เลย:
mkdir ~/projects && cd ~/projects
less setup.sh # อ่านทุกบรรทัดก่อน
bash setup.shGet-Content .\setup.ps1 | more
powershell -ExecutionPolicy Bypass -File .\setup.ps1
-ExecutionPolicy Bypass ใช้เฉพาะการรันครั้งนี้ ไม่เปลี่ยน policy ของเครื่อง
ภายใน starter zip#
<project>-starter/
setup.sh (สิทธิ์ 755)
setup.ps1
README.md (มี share link)
nvx-stack.json (generator, shareUrl, config, steps[] แบบอ่านด้วยเครื่องได้)
starter-files/... (ทุกไฟล์ที่ขั้นตอนต่าง ๆ จะเขียน ณ path เดิม)
เราใส่ nvx-stack.json ไว้เผื่อเครื่องมืออัตโนมัติหรือ AI agent ที่ต้องการอ่านลำดับขั้นตอนโดยไม่ต้อง parse shell script
เคล็ดลับจากทีมเรา#
- รันในโฟลเดอร์ว่างเสมอ ขั้นแรกของเทมเพลตส่วนใหญ่สร้างโฟลเดอร์
{{name}}แล้วcdเข้าไป - หลังสคริปต์จบ ให้รันขั้นที่คอมเมนต์ไว้ (เช่น
npm run dev) ในเทอร์มินัลแยก - ผู้ร่วมพัฒนาสร้างสคริปต์จาก CLI ได้ด้วย
npm run export -- <templateId>(ดู npm-scripts.md)
อ้างอิง#
src/lib/scripts.ts, src/lib/download.ts, scripts/export-template.ts
Source: docs/user-guide/downloads.md · /docs/user-guide/downloads.md