เครื่องมือสร้างเว็บไซต์แบบคงที่ที่ให้คุณใช้เซิร์ฟเวอร์ HTTP และเฟรมเวิร์กที่คุณรู้จักอยู่แล้ว เพียงบอก Staticgen ว่าจะเริ่มต้นเซิร์ฟเวอร์ของคุณอย่างไร จากนั้นดูเซิร์ฟเวอร์รวบรวมข้อมูลไซต์ของคุณและสร้างเวอร์ชันคงที่พร้อมหน้าและเนื้อหาทั้งหมดที่จำเป็น
หากคุณไม่คุ้นเคย คุณสามารถใช้คำสั่ง wget ที่มีอายุหลายสิบปีเพื่อส่งออกเว็บไซต์แบบสแตติกจากไดนามิกได้ โปรเจ็กต์นี้สร้างขึ้นโดยมีจุดประสงค์เพื่อแนวคิดเดียวกัน โดยให้ทีมของคุณใช้เซิร์ฟเวอร์ HTTP และเฟรมเวิร์กใดก็ได้ที่คุณอยู่ คุ้นเคยอยู่แล้วในภาษาใด ๆ
ฉันยังไม่ได้ทำการวัดประสิทธิภาพหรือการเปรียบเทียบทางวิทยาศาสตร์ใดๆ แต่นี่คือผลลัพธ์บางส่วนเกี่ยวกับ MBP 8-core ปี 2014 ของฉัน:
ผ่าน gobinaries.com:
$ curl -sf https://gobinaries.com/tj/staticgen/cmd/staticgen | sh การกำหนดค่าจะถูกจัดเก็บไว้ในไฟล์ ./static.json ในไดเรกทอรีรากของโปรเจ็กต์ของคุณ มีตัวเลือกต่อไปนี้:
"http://127.0.0.1:3000""build"[]30 ขั้นแรกให้สร้างไฟล์การกำหนดค่า ./static.json ตัวอย่างเช่น นี่คือการกำหนดค่าสำหรับเซิร์ฟเวอร์ Go คุณสมบัติที่จำเป็นเพียงอย่างเดียวคือ command :
{
"command" : " go run main.go " ,
"concurrency" : 50 ,
"dir" : " dist "
} ด้านล่างนี้เป็นตัวอย่างของเซิร์ฟเวอร์ Node.js โปรดทราบว่า NODE_ENV ถูกกำหนดให้กับการใช้งานจริง เพื่อใช้การปรับให้เหมาะสม เช่น แคชเทมเพลต Express เพื่อปรับปรุงประสิทธิภาพการให้บริการ
{
"command" : " NODE_ENV=production node server.js "
} รันคำสั่ง staticgen เพื่อเริ่มกระบวนการเรนเดอร์ล่วงหน้า:
$ staticgen
Staticgen ดำเนินการ command ที่คุณระบุ รอให้เซิร์ฟเวอร์พร้อมใช้งานบน url ที่กำหนดค่าไว้ หน้าและเนื้อหาจะถูกคัดลอกไปยัง dir ที่กำหนดค่าไว้ จากนั้นเซิร์ฟเวอร์ของคุณจะถูกปิดตัวลง
ตามค่าเริ่มต้น การหมดเวลาสำหรับกระบวนการสร้างคือ 15 นาที ขึ้นอยู่กับสถานการณ์ของคุณ คุณอาจต้องการเพิ่มหรือลดสิ่งนี้ด้วยแฟล็ก -t, --timeout ต่อไปนี้คือตัวอย่างบางส่วน:
$ staticgen -t 30s
$ staticgen -t 15m
$ staticgen -t 1h
เมื่อเรียกใช้ command Staticgen จะตั้งค่าตัวแปรสภาพแวดล้อม STATICGEN เป็น 1 เพื่อให้คุณปรับเปลี่ยนพฤติกรรมได้หากจำเป็น
หากต้องการดูไซต์ที่แสดงผลล่วงหน้าให้รันคำสั่งต่อไปนี้เพื่อเริ่มเซิร์ฟเวอร์ไฟล์แบบคงที่และเปิดเบราว์เซอร์:
$ staticgen serve
ดูไดเร็กทอรีตัวอย่างสำหรับตัวอย่างแบบเต็ม
Staticgen ไม่แสดงผลล่วงหน้าโดยใช้เบราว์เซอร์แบบไม่มีส่วนหัว ซึ่งจะทำให้เร็วขึ้น อย่างไรก็ตาม หมายความว่าคุณไม่สามารถพึ่งพา JavaScript ฝั่งไคลเอ็นต์เพื่อจัดการหน้าได้
โปรเจ็กต์นี้ได้รับการสนับสนุนจาก CTO.ai ทำให้ทีมพัฒนาสามารถสร้างและแชร์เวิร์กโฟลว์อัตโนมัติได้อย่างง่ายดายโดยไม่ต้องออกจากบรรทัดคำสั่ง
และผู้สนับสนุน GitHub ของฉัน: