Peer dependencies ใน npm

30 Sep 2021,
Share: 
Cover image

สวัสดีครับ ในบทความนี้จะเกี่ยวกับ Peer dependencies ใน npm ครับ

Peer dependencies คืออะไร

ในบางครั้งถ้าเราต้องการจะสร้าง Library A และ Plugin B ที่ใช้งานร่วมกันตัวอย่างเช่น

import A from 'A';
import B from 'B';

A.addPlugin(new B());

A.doSomeThing();

จากตัวอย่างด้านบน หมายความว่า Plugin B จะต้อง Implement ให้สามารถใช้งานใน Library A ได้

ปัญหาคือ ถ้า Library A มีการเปลี่ยน version และมีการเปลี่ยนแปลงอะไรบางอย่างที่ทําให้ Plugin B ไม่สามารถใช้งานได้อีกต่อไป จึงทําให้เกิดปัญหาขึ้นมา

Peer dependencies จะมาช่วยแก้ปัญหานี้คือ จะช่วยบอก npm ว่า Plugin B จะสามารถใช้งานกับ Library A version อะไรได้บ้าง

ตัวอย่างการกําหนด peerDependencies ให้กับ Plugin B

{
  "name": "B",
  "version": "1.0.0",
  "peerDependencies": {
    "A": "2.x"
  }
}

จากตัวอย่างด้านบน หมายความว่า Plugin B v1.0.0 จะสามารถใช้งานร่วมกับ Library A v2.x ได้ แต่ใน Library A version อื่นๆนอกเหนือจากนี้ อาจจะไม่สามารถทํางานร่วมกันได้

ใน npm version 3-6 จะขึ้น Warning กรณีที่ version ของ package ใน peerDependencies ไม่ตรงกันกับ package ที่อยู่ใน node_module

แต่ ใน npm version 7 จะทําการ Install package ใน peerDependencies ให้โดยอัตโนมัติ ทําให้เกิด Conflic และ Error ขึ้นกรณีที่ ใน node_module มี package version อื่น อยู่แล้ว ซึ่งเราสามารถแก้ปัญหาได้โดยใช้ —legacy-peer-deps ตอนใช้คําสั่ง npm install เพื่อบอก npm ว่าไม่ต้อง Install ให้ แค่แสดง Warning ขึ้นมาเฉยๆพอ เหมือนกับ npm version 3-6

$ npm install --legacy-peer-deps <your package>

Suggestion blogs

Singleton pattern

Singleton pattern เป็น Design pattern ที่ใช้จํากัดจํานวนของอ็อบเจกต์ที่ถูกสร้างในขณะที่โปรแกรมทํางาน จะมีประโยชน์ในกรณีที่ระบบงานต้องการบังคับให้มีแค่อ็อบเจกต์เดียวเพื่อไม่ให้เกิดการซํ้าซ้อนกันเช่น Class ที่ใช้ในการควบคุม Hardware 1 ตัว ในการควบคุม Hardware 1 ตัวถ้าสร้างอ็อบเจกต์เพื่อควบคุมขึ้นมาหลายตัวอาจจะทําให้เกิดปัญหาในการควบคุม Hardware ได้

เปลี่ยนแบตเตอรี่รีโมทรถยนต์มิตซูบิชิ มิราจ (KOS)

สวัสดีครับ วันนี้ผมได้มีโอกาสเปลี่ยนแบตเตอรี่ของรีโมทของรถยนต์มิตซูบิชิ มิราจ ก็เลยนําวิธีการเปลี่ยนมาแบ่งปันกันครับ อุปกรณ์ที่ต้องใช้คือ

Ascii คือ อะไร?

Ascii คือ อะไร?ในระบบคอมพิวเตอร์ จะใช้เลขฐานสอง(0, 1) ในการทํางาน เลขฐานสอง 1 ตัว เราจะเรียกว่า 1 bit สามารถแทนสถานะได้ 2 สถานะ คือ 0 กับ 1 ถ้าเรานําเลขฐานสองมาร่วมกัน 8 ตัว(8 bit) เราจะเรียกว่า 1 Byte สามารถใช้แทนสถานะได้ถึง 256 สถานะ(2 ยกกําลัง 8) Ascii เป็นการกําหนดมาตรฐานเพื่อใช้ในระบบคอมพิวเตอร์ และอุกปรณ์ Digitall ต่างๆ โดยนําเลขฐานขนาด 1 Byte มาแทนตัว


Copyright © 2019 - 2026 thiti.dev |  v1.61.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Nostr   Youtube channel   Telegram   Email contact   วงแหวนเว็บ