แนะนำ Extension.js
- Extension.js เป็นเครื่องมือพัฒนาส่วนขยายข้ามเบราว์เซอร์แบบปลั๊กแอนด์เพลย์ที่ไม่ต้องมีการตั้งค่า
- รองรับ TypeScript, WebAssembly, React และ JavaScript รุ่นใหม่เป็นค่าเริ่มต้น ทำให้สามารถสร้างส่วนขยายข้ามเบราว์เซอร์ได้
สร้างส่วนขยายใหม่
ใช้ Chrome Extension Samples
ใช้ Chrome Extension Samples ใน Microsoft Edge
รันส่วนขยายของ Mozilla ใน Edge
ใช้ Extension.js กับส่วนขยายเดิม
- หากส่วนขยายเดิมของคุณใช้ตัวจัดการแพ็กเกจอยู่แล้ว คุณสามารถติดตั้งแพ็กเกจ Extension.js และตั้งค่าสคริปต์เพื่อใช้งานได้
- ติดตั้ง extension เป็น
devDependency
npm install extension --save-dev
- เชื่อมสคริปต์ npm กับคำสั่งของ Extension.js
{
"scripts": {
"build": "extension build",
"dev": "extension dev",
"start": "extension start"
},
"devDependencies": {
"extension": "latest"
}
}
- ในการพัฒนาใช้
npm run dev สำหรับโหมด production ใช้ npm run start และการ build ของโหมด production ใช้ npm run build
ใช้เบราว์เซอร์เฉพาะสำหรับการพัฒนา
- สถานะการรองรับบนเดสก์ท็อป
| Brave |
Chrome |
Edge |
Firefox |
Opera |
Safari |
Vivaldi |
| ☑️ |
✅ |
✅ |
⛔️ |
☑️ |
⛔️ |
☑️ |
- ☑️ = ใช้งานได้ แต่ยังไม่รองรับ launcher ของเบราว์เซอร์
- สถานะการรองรับบนมือถือ
| Firefox Android |
iOS Safari |
| ⛔️ |
⛔️ |
- หากกำหนดเบราว์เซอร์เป้าหมาย ให้ส่ง flag
--browser ในคำสั่ง dev/start
- ตัวอย่าง:
npx extension dev path/to/extension --browser=edge
- เคล็ดลับ: หากส่ง
--browser="all" จะโหลดเบราว์เซอร์ที่รองรับทั้งหมดพร้อมกัน
ความคิดเห็นของ GN⁺
- Extension.js ดูเป็นเครื่องมือที่ทรงพลังสำหรับการพัฒนาส่วนขยายข้ามเบราว์เซอร์ โดยเฉพาะอย่างยิ่งสามารถใช้งานได้ทันทีโดยไม่ต้องตั้งค่า และรองรับหลายเบราว์เซอร์ได้ง่าย ซึ่งคาดว่าจะช่วยลดเวลาพัฒนาได้มาก
- อีกหนึ่งข้อดีคือการใช้งานตัวอย่างที่มีอยู่แล้ว เช่น Chrome Extension Samples หรือ MDN WebExtensions Examples ได้ด้วย ซึ่งเป็นจุดแข็งใหญ่ ทำให้นักพัฒนาใหม่น่าเริ่มต้นได้ง่าย
- อย่างไรก็ตาม เบราว์เซอร์บางตัวเช่น Firefox หรือ Safari ยังดูเหมือนว่าจะยังไม่รองรับแบบครบถ้วน จึงควรระมัดระวัง หากคุณกำหนดเป้าหมายเฉพาะเบราว์เซอร์ใดเบราว์เซอร์หนึ่ง ควรพิจารณาใช้เครื่องมือเฉพาะของเบราว์เซอร์นั้น
- รู้สึกอยากเห็นจุดเด่นและจุดด้อยเมื่อเทียบกับเครื่องมือที่คล้ายกันอย่าง Plasmo, WebExtensions API โดยเฉพาะการรองรับสเปกล่าสุด เช่น Manifest V3
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
Extension.jsซึ่งเป็นเฟรมเวิร์กที่มีประโยชน์สำหรับการพัฒนา Chrome extensionExtension.jsจะช่วยแก้ปัญหาเหล่านี้ได้Extension.jsได้รับคำชมว่าถูกจัดทำไว้อย่างดีExtension.jsExtension.jsครอบคลุมฟีเจอร์สื่อสารระหว่างส่วนขยายกับแท็บได้จะดีมากPlasmoExtension.jsจะช่วยแก้ปัญหานี้ได้safari-web-extension-converterExtension.jsExtension.js