เกริ่นนำ
ปลั๊กอินเป็นโค้ดแบบในตัวที่จะเพิ่มฟังก์ชันให้กับ Blockly ปลั๊กอินสามารถเพิ่มช่อง กำหนดธีม สร้างโหมดแสดงภาพ และอื่นๆ อีกมากมาย
ผู้ใช้เป้าหมายของปลั๊กอินคือนักพัฒนาซอฟต์แวร์ที่ค้นหาและใช้ปลั๊กอินผ่าน npm หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการสร้างปลั๊กอิน โปรดดูการบรรยายเรื่องวิธีสร้างปลั๊กอินในปี 2021 และการบรรยายเกี่ยวกับภาพรวมปลั๊กอินปี 2021
บุคคลที่หนึ่งเทียบกับบุคคลที่สาม
ปลั๊กอินที่กำหนดไว้ในที่เก็บ blockly-sample คือปลั๊กอินของบุคคลที่หนึ่ง ซึ่งหมายความว่าทีม Blockly สนับสนุนและเผยแพร่ภายใต้ขอบเขต @blockly
ใน npm
ปลั๊กอินที่ดีของบุคคลที่หนึ่ง:
- มีกรณีการใช้งานที่ชัดเจน
- เป็นวัตถุประสงค์ทั่วไป
- เสถียร
- ใช้งานง่าย
ปลั๊กอินของบุคคลที่สามจะได้รับการเก็บรักษาและเผยแพร่โดยอิสระ ปลั๊กอินของบุคคลที่สามอาจซับซ้อนกว่า มีการทดสอบมากกว่า หรือตรงเป้าหมายมากกว่า
เช่น ช่องสำหรับตั้งค่าความเร็วมอเตอร์อาจใช้ในโครงการหุ่นยนต์หลายโครงการได้ ในทางกลับกัน ช่องสำหรับแก้ไขออบเจ็กต์เฉพาะที่กำหนดโดยสคีมาฐานข้อมูลจะเหมาะกว่าในฐานะปลั๊กอินของบุคคลที่สาม
เกณฑ์ของบุคคลที่หนึ่ง
ปลั๊กอินของบุคคลที่หนึ่งต้องสอดคล้องกับข้อกำหนดต่อไปนี้
- ทำงานได้บนแพลตฟอร์มหลักทั้งหมด เว้นแต่ทีม Blockly จะยกเว้นให้
- Chrome, Firefox, Safari, Edge
- มีผู้เขียนที่ยินดีจัดการข้อบกพร่องในปีแรก
- ไม่ Monkeypatch Blockly
- มี API ที่ระบุและบันทึกไว้อย่างชัดเจน
- ไม่เรียกฟังก์ชันแบบส่วนตัวหรือแพ็กเกจจาก Blockly Core เว้นแต่ว่าทีม Blockly จะยกเว้นให้
- อนุญาตการลบล้างฟังก์ชันแพ็กเกจในคลาสย่อยที่คุณกำหนด
- หากคุณต้องการได้รับข้อยกเว้น โปรดแจ้งให้เราทราบเกี่ยวกับปัญหาเรื่องตัวอย่างบล็อก
- มีการทดสอบ
การค้นหาปลั๊กอิน
- ในหน้า GitHub สำรวจการสาธิตแบบสดของปลั๊กอินของบุคคลที่หนึ่ง
- ใน npm ให้ค้นหา
@blockly
เพื่อดูรายการปลั๊กอินที่ทีม Blockly เผยแพร่ - ใน GitHub ให้ดูที่ไดเรกทอรีปลั๊กอินในที่เก็บตัวอย่างแบบบล็อก ปลั๊กอินแต่ละรายการมี README ที่อธิบายลักษณะการทำงานและการใช้งานที่มุ่งหวัง
การติดตั้งปลั๊กอิน
- ค้นหาปลั๊กอินที่คุณต้องการติดตั้งโดยใช้ทรัพยากรอย่างใดอย่างหนึ่งข้างต้นและค้นหา README
ทำตามคำแนะนำในการติดตั้งใน README โดยทั่วไปคุณจะต้อง ติดตั้งปลั๊กอินจาก npm เช่น
npm install @blockly/block-plus-minus --save
และนำเข้าไว้ในโค้ดของคุณ เช่น
import Blockly from 'blockly'; import '@blockly/block-plus-minus';
ปลั๊กอินบางตัวอาจมีขั้นตอนเพิ่มเติม เช่น การเริ่มต้นหรือการลงทะเบียนปลั๊กอิน ขั้นตอนเหล่านี้จะแสดงอยู่ใน README
เวอร์ชันปลั๊กอิน
ปลั๊กอินในตัวอย่างบล็อกจะเป็นไปตามการกำหนดเวอร์ชันทางอรรถศาสตร์ ดังนั้นการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบจะอยู่ในเวอร์ชันหลักใหม่ ปลั๊กอินใหม่ใดๆ ที่อาศัยการแพตช์ Core จะมีเวอร์ชันหลักเป็น 0 เพื่อแสดงถึงการพัฒนาเริ่มต้นตามที่ระบุไว้ในข้อกำหนดของเซิร์ฟเวอร์
ปลั๊กอินส่วนใหญ่จะมีแพ็กเกจ blockly
หลักเป็นแบบเพียร์ Dependency แทนที่จะเป็นทรัพยากร Dependency ทั้งนี้เนื่องจากเราคาดหวังว่าจะได้เห็นคุณติดตั้ง Blockly ในแอปพลิเคชันของตัวเองแล้ว (การใช้ปลั๊กอินโดยที่ไม่ได้ใช้ Blockly ก็จะไม่เป็นการดี) เพื่อให้คุณจัดการเวอร์ชันของ Blockly ได้ด้วยตนเอง
อย่างไรก็ตาม ปลั๊กอินจำนวนมากได้รับการพัฒนามาเพื่อใช้ API ใหม่ที่พบใน Blockly เวอร์ชันล่าสุด คุณจึงต้องรับทราบข้อกำหนดเวอร์ชัน package.json
ของปลั๊กอินจะบอกคุณว่าเวอร์ชันขั้นต่ำของ Blockly ที่เข้ากันได้กับปลั๊กอินดังกล่าวคือเวอร์ชันใด หากมีการอัปเดตปลั๊กอินเพื่อใช้ Blockly เวอร์ชันใหม่ เช่น เพื่อใช้ประโยชน์จาก API ใหม่ล่าสุด เวอร์ชันหลักของปลั๊กอินจะเพิ่มขึ้น เนื่องจากเรามองว่านี่เป็นการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบ
เมื่อคุณเพิ่มปลั๊กอินลงใน package.json
ค่าเริ่มต้นคือรวมเครื่องหมายแคเรทไว้หน้าเวอร์ชัน เช่น
"@blockly/block-plus-minus": "^2.0.15"
การดำเนินการนี้จะทำให้ npm ติดตั้งเวอร์ชันย่อยใดก็ได้ที่เท่ากับหรือมากกว่าเวอร์ชันที่ระบุไว้ ดังนั้นเวอร์ชัน 2.0.20
หรือ 2.1.0
จะทำงานได้ แต่จะไม่ใช่เวอร์ชันหลักใหม่อย่าง 3.0.1
เมื่ออัปเดตเป็น Blockly เวอร์ชันใหม่แล้ว คุณควรตรวจสอบว่าจะมีการอัปเดตปลั๊กอินใดเป็นเวอร์ชันหลักใหม่ด้วยหรือไม่
การติดตั้งปลั๊กอินโดยไม่ใช้ npm
แม้ว่าโดยทั่วไปเราจะแนะนำให้ใช้ npm เพื่อให้รับการอัปเดตได้ง่าย แต่คุณก็สามารถใช้ปลั๊กอินโดยไม่มี npm ได้
คุณสามารถใช้ unpkg เพื่อรวมไฟล์ปลั๊กอินโดยไม่ต้องโคลนไฟล์ เช่น
<script src="https://unpkg.com/@blockly/block-plus-minus"></script>
หรืออาจโคลนที่เก็บ blockly-samples
แล้วรวมไฟล์ไว้ในเครื่องคล้ายกับกรณีที่คุณโคลน Blockly ก็ได้ อย่างไรก็ตาม ขอแนะนำให้คุณใช้ตัวจัดการแพ็กเกจหากเป็นไปได้ เนื่องจากจะช่วยให้คุณได้รับข้อมูลล่าสุดเกี่ยวกับฟีเจอร์และการแก้ไขข้อบกพร่องล่าสุดในปลั๊กอิน
สำหรับวิธีนี้ คุณยังคงต้องทำตามขั้นตอนการเริ่มต้นหรือการลงทะเบียนที่ระบุไว้ใน README ของปลั๊กอิน