เว็บแอปสมัยใหม่โดยไม่ต้องมี JS bundling/transpiling
(world.hey.com)-
แนวคิดของ DHH นักพัฒนา Ruby on Rails : "อนาคตของ JavaScript คือ ES6/HTTP2/Import maps"
-
No Transpiler : เมื่อ ES6 ใช้งานได้กับทุกเบราว์เซอร์แล้ว ตอนนี้ก็ไม่จำเป็นต้องใช้ทรานสไพล์เลอร์อีกต่อไป
-
No Bundler : เมื่อ HTTP2 กลายเป็นมาตรฐาน ก็ไม่จำเป็นต้องรวมไฟล์เล็ก ๆ ให้เป็นไฟล์เดียวอีกต่อไป
-
Import maps : การเปลี่ยนแปลงที่สำคัญที่สุด
→ สำหรับ ES6 modules สามารถอ้างอิงแบบตรรกะได้ ไม่ใช่แค่อ้างอิงตามไฟล์
→ แทนที่จะใส่ hash ในชื่อไฟล์และเปลี่ยนชื่อไฟล์ทุกครั้งที่มีการเปลี่ยนแปลง ก็แค่แก้ไข map ที่เชื่อมโมดูลกับชื่อไฟล์ก็พอ
→ ตอนนี้ Chrome และ Edge รองรับแล้ว, FF ก็กำลังพิจารณาอยู่ และแม้ Safari จะยังไม่มีข่าว แต่ก็มี shim ที่ยอดเยี่ยมอยู่แล้ว
→ การจัดการ import maps แบบแมนนวลยังต้องมีงานเพิ่มอีกนิด แต่ใน Rails ได้ทำ gem importmap-rails ไว้แล้ว
-
การผสมผสานทั้งสามอย่างนี้ทำให้สามารถสร้างสภาพแวดล้อมการพัฒนาที่ไม่ต้องติดตั้ง Node ในเครื่องได้
-
ได้ใช้เซ็ตอัปนี้กับ Stimulus และ Turbo สำหรับ Hotwire แล้ว
-
แน่นอนว่ายังมีแอปพลิเคชันที่ต้องใช้ Webpack อยู่ แต่ก็กำลังค่อย ๆ เปลี่ยนไป
2 ความคิดเห็น
ผมคิดว่าแนวทางของ DHH ที่พยายามทำให้การพัฒนาเว็บเรียบง่ายนั้นถูกต้อง
ทุกวันนี้ไม่ว่าจะสร้างอะไรก็มักจะพยายามใส่ฟรอนต์เอนด์เข้าไปแบบเป็นความเคยชิน และผมก็มีข้อกังขาต่อเทรนด์นั้น
ผมว่า import maps นั่นอาจจะกลายเป็นจุดเริ่มต้นของการงมทางผิดอีกครั้งก็ได้....