Skip to content

ปัญหาระหว่าง Bun กับ Sharp

UPDATED
 at 07:33 PM

By : Parinya T. | 1 min read

อัพเดทล่าสุด 20/01/2024

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

Blog Image Blog Image

ลบออกแล้ว 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)
....
 + [email protected]
 + [email protected]
 + [email protected]
 + [email protected]
 + [email protected]
 + [email protected]
 + [email protected]
 + [email protected]
 + [email protected]
 + [email protected]
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

ก็ผ่านเช่นเดียวกัน

Blog Image

สรุป

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

ในอัพเดทล่าสุดพบว่าปัญหานี้ได้รับการแก้ไขแล้ว และผมเองยังไม่พบปัญหาใดๆเพิ่มเติม จากการที่ผมใช้งานแค่ส่วนของ runtime เพื่อการ build เว็บอย่างเดียว

หวังว่าจะเป็นประโยชน์กับผู้อ่านนะครับ