อัพเดทล่าสุด 20/01/2024
ล่าสุดอัพเดท Bun มาเป็นเวอร์ชั่น 1.0.24 ก็พบว่าแก้ปัญหาการติดตั้ง dep ย่อยแล้ว ไม่ต้องพึ่งพา trustedDependencies แล้ว (กราบ~)


ลบออกแล้ว ci ก็ยังไม่พัง เย้~
ล่าสุด Bun ออกอัพเดท v1.0.6 ซึ่งเหมือนว่าจะแก้ไขปัญหาที่ไม่ยอมติดตั้ง sub dependencies หลายๆตัวแล้ว
โดยวิธีแก้ไขปัญหาก็ใช้วิธีเดิมที่ทางคอมมูนิตี้ได้เคยออกมาแจ้งก่อนหน้านี้ คือ ให้ทำการเพิ่ม trustedDependencies เข้าไป ยกตัวอย่างผมใช้ sharp ที่ไม่ยอมติดตั้งให้
"trustedDependencies": [
"sharp"
],
ที่ผ่านมาในเวอร์ชันก่อนๆ ได้เคยลองวิธีนี้แล้ว แต่ก็เหมือนเดิม
โดยสามารถเพิ่มเข้าไปในไฟล์ package.json ได้เลย โดยที่ผมไม่ได้เพิ่ม sharp เข้าไปในส่วน dependencies แต่อย่างใด
จากนั้นทำการลบโฟลเดอร์ node_modules และ ไฟล์ bun.lockb ออก แล้วทำการ install packages ทั้งหมดใหม่เลย
ผลคือ
bun install v1.0.6 (969da088)
....
+ react@18.2.0
+ react-dom@18.2.0
+ reading-time@1.5.0
+ rehype-external-links@3.0.0
+ remark-collapse@0.1.2
+ remark-toc@9.0.0
+ satori@0.10.9
+ tailwindcss@3.3.3
+ ts-node@10.9.1
+ typescript@5.2.2
sharp: Using cached /Users/pickyzz/.npm/_libvips/libvips-8.14.5-darwin-arm64v8.tar.br
sharp: Integrity check passed for darwin-arm64v8
ผ่านแล้วโว้ย!!!!
จากนั้นผมได้ลองสั่ง build ดู จากเดิมที่เคยติดปัญหาในช่วงที่ jampack ทำการ optimize ไฟล์ output มาตลอด (ที่จากเดิมแก้ปัญหาด้วยการ cd เข้าไป install sharp เอง)
พบว่า build จนจบขั้นตอนได้ และมาถึงส่วนที่ลุ้นที่สุดคือ แก้ ci แล้ว github action จะรันผ่านไหม ก็จัดการแก้จากเดิม
- name: "Install dependencies"
- run: bun i --no-save && cd ./node_modules/sharp && bun i --no-save
+ run: bun i --no-save
ก็ผ่านเช่นเดียวกัน

สรุป
ปัญหาน่าจะได้รับการแก้ไขแล้ว แต่ส่วนตัวมองว่าเป็นการแก้ไขแบบแก้ขัดให้ใช้งานได้ในระดับหนึ่งก่อน ซึ่งเมื่อเปรียบเทียบกับ runtime ตัวอื่นๆ ที่ไม่ต้องแก้ไขปัญหาด้วยการเพิ่ม trustedDependencies ในไฟล์ package.json เลย (ในอนาคตอาจจะได้รับการแก้ไขตรงนี้ตามมา) แต่ก็ถือว่าคอมมูนิตี้ของ bun นั้นเติบโตได้เร็วอยู่ไม่น้อย
ในอัพเดทล่าสุดพบว่าปัญหานี้ได้รับการแก้ไขแล้ว และผมเองยังไม่พบปัญหาใดๆเพิ่มเติม จากการที่ผมใช้งานแค่ส่วนของ runtime เพื่อการ build เว็บอย่างเดียว
หวังว่าจะเป็นประโยชน์กับผู้อ่านนะครับ