เขียนต่อจากโพสก่อนที่พูดถึงเรื่องแอพที่ใช้ คราวนี้มาพูดถึงการพอร์ตแอพเพื่อนำมาใช้งานบน Surface Pro X ครับ ซึ่งที่เคยทำแล้วทำได้ก็คือคอมไพล์โปรแกรมที่ใช้ไลบรารี Electron ที่อนุญาตให้เราเขียนเว็บแล้วเอามารันบน Desktop ได้เลย
แต่ทีนี้ปัญหาของโปรแกรมที่ให้ดาวน์โหลดก็คือ ตัวโปรแกรมรองรับสถาปัตยกรรม x86 ที่ใช้ 32-bit หรือ 64-bit แต่ไม่ได้เปิดให้ดาวน์โหลดใช้งานสำหรับ ARM64 ยกเว้นบางโปรแกรมตัวอย่างเช่น Visual Studio Code, MS Team เป็นต้น
ทีนี้ เราจะทำอย่างไรดีล่ะ เพราะวินโดว์บน Surface Pro X ไม่มี Node.js ให้โหลด (อันนี้ลองคอมไพล์แล้วยังใช้งานไม่ได้ สงสัยตั้งค่าไม่ถูก เดี๋ยวค่อย ๆ เช็คกันทีหลัง) เลยต้องใช้คอมพิวเตอร์อีกเครื่องที่มีวินโดว์ 10 ที่ใช้ซีพียู x86 มาแปลงให้ใช้งานบน Surface Pro X ได้
วิธีการนำแอพที่พัฒนาด้วย ElectronJS ไปใช้งานบน Surface Pro X
ดีที่ว่าไปเจอข่าวในเว็บไซต์ที่ระบุไว้ว่าเราสามารถพอร์ตไปยัง ARM64 ได้โดยเราการพิมพ์ไม่กี่คำสั่งก็สามารถใช้งานได้แล้ว ตามด้านล่างนี้ (ส่วนโปรแกรมที่ใช้ไลบรารีแบบ Native อันนี้ต้องคอมไพล์ไลบรารีไปด้วย)
- ติดตั้งเครื่องมือที่ใช้คอมไพล์โค้ดให้สามารถใช้งานในสถาปัตยกรรม ARM64 ก่อน โดยติดตั้งผ่าน Visual Studio Community Edition เลือกเครื่องมือที่ติดตั้งได้แก่ MSVC Build Tools, ATL build tools, MFC build tools (ที่เป็นรุ่นล่าสุด) Windows 10 SDK เอารุ่นล่าสุด ตามรายละเอียดในหน้าเว็บของ Electron ที่แนะนำได้เลย
- ติดตั้ง Node.js เวอร์ชันใหม่ (ตามเว็บจะแนะนำรุ่น 12.9 เป็นต้นไป แต่ในหน้าเว็บของ Node.js ก็เป็นรุ่นใหม่กว่าแล้ว ก็เอาตามในหน้าเว็บได้เลย)
- ติดตั้ง Git เพราะโปรแกรมที่ทำแบบนี้ได้จะเผยแพร่ในเว็บนี้แหละ
- โคลน Source Code จากเว็บ Github หรืออื่น ๆ ตัวอย่างเช่น Netron
- ตั้งค่าให้คอมไพล์สำหรับ ARM64 โดยพิมพ์คำสั่ง npm_config_arch=arm64
- พิมพ์คำสั่ง npm install หรือ yarn install เพื่อติดตั้งแพคเกจ ตัวโปรแกรมจะติดตั้งไลบรารีสำหรับ ARM64
- ติดตั้งเครื่องมือทำแพคเกจของ Electron ได้แก่ electron-builder (หรืออื่น ๆ)
- สั่งให้มันสร้างแพคเกจเพื่อติดตั้งบน Surface Pro X ตัวอย่างเช่น electron-builder –windows nsis:ia32
- ตัวโปรแกรมจะสร้างไฟล์ติดตั้งโปรแกรมสำหรับ ARM64 ขึ้นมา
เมื่อสร้างเสร็จแล้ว เราคัดลอกไฟล์ไปติดตั้งบน Surface Pro X แล้วเปิดใช้งานตามปกติ โดยเราลองคอมไพล์ไปแล้ว จะได้ผลตามด้านล่างนี้ครับ
- Netron ที่แสดง Neural Network Architecture สำหรับการทำงานของ AI อันนี้คอมไพล์แล้วสามารถทำงานได้ปกติ ไม่มีปัญหาอะไร
- ส่วนโปรแกรม Simplenote ที่เป็นโปรแกรมที่ใช้จดบันทึกของ WordPress ลองคอมไพล์เพื่อใช้งานแล้วพบว่ามันเพี้ยน ๆ แฮะ น่าจะตั้งค่าอะไรไม่ถูก
ส่วนโปรแกรมอื่น ยังไม่ได้ทดสอบครับ ผู้อ่านสามารถเอาไปลองทำได้เลยครับผม
โดยสรุปแล้ว
เราสามารถคอมไพล์โปรแกรมที่ใช้ไลบรารี Electron เพื่อทำงานบนคอมพิวเตอร์ที่ใช้ ARM64 อย่าง Surface Pro X ได้ตามวิธีข้างบน แต่อย่างไรก็ดี บางโปรแกรมอาจจะทำงานได้ไม่สมบูรณ์ก็ต้องไปเช็คการตั้งค่าอีกทีครับ และบางโปรแรกมที่ใช้ไลบรารีแบบ Native ก็ต้องคอมไพล์ให้เรียบร้อยก่อน แล้วค่อยจัดทำแพคเกจสำหรับการติดตั้งครับผม