Deno รองรับโมดูล npm แล้ว

deno npm

แพลตฟอร์มนี้ได้รับการพัฒนาโดย Ryan Dahl ผู้สร้าง Node.js

เมื่อเร็ว ๆ นี้ ข่าวการเปิดตัว Deno 1.28 framework เวอร์ชันใหม่ได้รับการเผยแพร่แล้วซึ่งช่วยให้สามารถเรียกใช้งานแอปพลิเคชัน JavaScript และ TypeScript แบบสแตนด์อโลนที่สามารถใช้เพื่อสร้างตัวควบคุมที่ทำงานบนเซิร์ฟเวอร์

Deno ถูกสร้างขึ้นเพื่อให้ผู้ใช้มีสภาพแวดล้อมที่ปลอดภัยยิ่งขึ้น และกำจัดข้อผิดพลาดเชิงแนวคิดในสถาปัตยกรรม Node.js เพื่อปรับปรุงความปลอดภัย การผูกรอบเอ็นจิ้น V8 นั้นเขียนขึ้นใน Rust ซึ่งหลีกเลี่ยงช่องโหว่จำนวนมากที่เกิดขึ้นเนื่องจากการจัดการหน่วยความจำระดับต่ำ

ในการประมวลผลคำขอในโหมดที่ไม่ปิดกั้น จะใช้เฟรมเวิร์กของ Tokio ซึ่งเขียนด้วยภาษา Rust ด้วย โตเกียวช่วยให้คุณสร้างแอปพลิเคชั่นประสิทธิภาพสูงตามสถาปัตยกรรมที่ขับเคลื่อนด้วยเหตุการณ์ รองรับมัลติเธรดและประมวลผลคำขอเครือข่ายแบบอะซิงโครนัส

คุณสมบัติบางอย่าง คนหลักของ Deno มีดังต่อไปนี้:

  • รองรับภาษา TypeScript ในตัวนอกเหนือจาก JavaScript ในการตรวจสอบประเภทและสร้าง JavaScript จะใช้คอมไพเลอร์ TypeScript ซึ่งทำให้ประสิทธิภาพลดลงเมื่อเทียบกับการแยกวิเคราะห์ JavaScript ใน V8
  • รันไทม์มาในรูปแบบของโปรแกรมปฏิบัติการแบบสแตนด์อโลน (“deno”) หากต้องการเรียกใช้แอปพลิเคชันโดยใช้ Deno เพียงดาวน์โหลดไฟล์ปฏิบัติการสำหรับแพลตฟอร์มของคุณ ซึ่งมีขนาดประมาณ 30 MB ซึ่งไม่มีการพึ่งพาภายนอกและไม่ต้องการการติดตั้งพิเศษใดๆ บนระบบของคุณ
  • การประมวลผลคำขอเครือข่ายที่มีประสิทธิภาพผ่าน HTTP แพลตฟอร์มได้รับการออกแบบมาเพื่อสร้างแอปพลิเคชันเครือข่ายที่มีประสิทธิภาพสูง
  • ความสามารถในการสร้างเว็บแอปพลิเคชันสากลที่สามารถทำงานได้ทั้งใน Deno และในเว็บเบราว์เซอร์ปกติ
  • การมีอยู่ของชุดโมดูลมาตรฐาน การใช้งานไม่จำเป็นต้องเชื่อมโยงกับการพึ่งพาภายนอก
  • โมดูลคอลเลคชันมาตรฐานได้รับการตรวจสอบเพิ่มเติมและทดสอบความเข้ากันได้แล้ว
  • แพ็คเกจประกอบด้วยระบบตรวจสอบการพึ่งพาในตัว (คำสั่ง "deno info") และยูทิลิตีการจัดรูปแบบโค้ด (deno fmt)
  • สคริปต์แอปพลิเคชันทั้งหมดสามารถรวมเป็นไฟล์ JavaScript ไฟล์เดียวได้

ข่าวหลักของ Deno 1.28

การเปลี่ยนแปลงที่สำคัญในเวอร์ชันใหม่คือ ความเสถียรของความเข้ากันได้กับแพ็คเกจที่โฮสต์ในที่เก็บ NPM, อะไร อนุญาตให้ Deno ใช้โมดูลมากกว่า 1,3 ล้านโมดูล สร้างขึ้นสำหรับแพลตฟอร์ม Node.js ตัวอย่างเช่น แอปพลิเคชันที่ใช้ Deno สามารถใช้โมดูลการเข้าถึงข้อมูลแบบถาวร เช่น Prisma, Mongoose และ MySQL รวมถึงเฟรมเวิร์กส่วนหน้าอย่าง React และ Vue

โมดูล NPM บางส่วนยังคงเข้ากันไม่ได้กับ Denoตัวอย่างเช่น เนื่องจากการเชื่อมโยงกับสภาพแวดล้อม Node.js เฉพาะ เช่น ไฟล์ package.json ไม่สามารถใช้คำสั่ง "deno compile" กับโมดูล NPM การเปิดตัวในอนาคตมีการวางแผนเพื่อจัดการกับความไม่ลงรอยกันและข้อจำกัดเหล่านี้

ระบบโมดูล โมเดลโมดูล ECMAScript และ Web API ดั้งเดิมของ Deno ยังคงเหมือนเดิมและรูปแบบการโหลดตาม URL ที่คุ้นเคยของ Deno ใช้เพื่อนำเข้าโมดูล NPM

การใช้แพ็คเกจ NPM ใน Deno นั้นง่ายกว่าใน Node.js มากเนื่องจากไม่จำเป็นต้องติดตั้งโมดูลล่วงหน้า (โมดูลจะถูกติดตั้งเมื่อแอปพลิเคชันเริ่มทำงานเป็นครั้งแรก), ไฟล์ package.json ไม่ได้ใช้และไม่ได้ใช้ไดเร็กทอรี node_modules ถูกใช้โดยค่าเริ่มต้น (โมดูลถูกแคชในไดเร็กทอรีที่ใช้ร่วมกัน แต่เป็นไปได้ที่จะเปลี่ยนกลับลักษณะการทำงานก่อนหน้านี้ด้วยตัวเลือก "--node-modules-dir")

แอปพลิเคชันขึ้นอยู่กับ NPM ยังคงความสามารถในการใช้กลไกการควบคุมการเข้าถึง การแยก Deno และการเปิดใช้งานสำหรับคุณสมบัติขั้นสูงที่ส่งผลต่อความปลอดภัย เพื่อตอบโต้การโจมตีผ่านการพึ่งพาที่น่าสงสัย โดยค่าเริ่มต้น Deno จะบล็อกความพยายามทั้งหมดในการเข้าถึงระบบจากการพึ่งพา และแสดงคำเตือนเกี่ยวกับปัญหาที่ตรวจพบ ตัวอย่างเช่น เมื่อโมดูลพยายามเขียนไปยัง /usr/bin/ ระบบจะแสดงข้อความยืนยันสำหรับการดำเนินการนี้:

การปรับปรุงที่ไม่เกี่ยวข้องกับ NPM ในเวอร์ชั่นใหม่ รวมการอัพเกรดเครื่องยนต์ V8 สำหรับเวอร์ชัน 10.9 ตรวจจับไฟล์ที่ถูกล็อคโดยอัตโนมัติ, การรักษาเสถียรภาพของ Deno.bench(), Deno.gid(), Deno.networkInterfaces(), Deno.systemMemoryInfo( ) และ Deno API .uid() เพิ่ม API Deno.Command() ที่ไม่เสถียรใหม่เพื่อดำเนินการคำสั่ง (แทนที่แบบสากลสำหรับ Deno.spawn, Deno.spawnSync และ Deno.spawnChild)

สุดท้ายเป็นมูลค่าการกล่าวขวัญว่า เช่นเดียวกับ Node.js Deno ใช้เครื่องมือ JavaScript V8ซึ่งใช้ในเบราว์เซอร์ที่ใช้ Chromium ด้วย ในขณะเดียวกัน Deno ไม่ใช่ทางแยกของ Node.js แต่เป็นโครงการใหม่ที่สร้างขึ้นตั้งแต่เริ่มต้น รหัสของโครงการเผยแพร่ภายใต้ใบอนุญาต MIT และมีรุ่นสำเร็จรูปสำหรับ Linux, Windows และ macOS

ถ้าคุณเป็น สนใจที่จะทราบข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ คุณสามารถปรึกษา ลิงค์ต่อไปนี้


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. รับผิดชอบข้อมูล: AB Internet Networks 2008 SL
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา