"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > قم بإنشاء ونشر مكتبة npm باستخدام TypeScript والإصدار الدلالي

قم بإنشاء ونشر مكتبة npm باستخدام TypeScript والإصدار الدلالي

تم النشر بتاريخ 2024-11-07
تصفح:581

؟ كتابة ونشر الحد الأدنى من التعليمات البرمجية

لنشر مكتبة على npm، ستحتاج إلى:

  1. حساب npm؛ يمكنك التسجيل هنا.

  2. الكود الخاص بك كمشروع؛ أي أن لديك package.json في دليل التعليمات البرمجية الخاص بك، والذي يحتوي على الاسم والإصدار المحددين. لاحظ أنه يمكنك إنشاء هذا الملف عبر:

npm init
  1. ملف index.js في مشروعك. تذكر أنك تحتاج إلى تصدير وظيفتك للسماح للمستخدمين باستيرادها.

ملاحظة: إذا لم يتم تسمية البرنامج النصي الخاص بك باسم Index.js وتم وضعه في جذر المشروع، فستحتاج إلى تحديد الخاصية "الرئيسية" في package.json. انظر هذه الإجابة لمزيد من المعلومات.

وإذا تم أخذ الاسم على npm، فيمكنك إضافة بادئة مثل @name-or-org/your-lib؛ وهذا ما تفعله معظم المكتبات الأخرى في الوقت الحاضر.

يمكنك التحقق من المثال البسيط الخاص بي كمرجع، ولكن أعتقد أنه يمكنك كتابة شيء أكثر روعة من هذا.

Create and publish an npm library, with TypeScript and Semantic Versioning

أخيرًا، قم بنشره باستخدام أمر CLI:

npm publish

Create and publish an npm library, with TypeScript and Semantic Versioning

ملاحظة للأشخاص الذين يقومون بتعيين اسم الحزمة ببادئة: يجب أن يكون اسم مستخدم npm الخاص بك أو اسم المؤسسة الذي قمت بتسجيله في npm. على سبيل المثال، يمكنني استخدام @remi_guan كبادئة خاصة بي وليس غيرها.

تحتاج أيضًا إلى تشغيل npm Publish --access public، لأن npm تعتقد أنك تريد نشر حزمة خاصة، وهي ميزة مدفوعة.

يعني هذا الإخراج أنه كان ناجحًا. ومع ذلك، إذا واجهت بعض المشاكل، يمكنك البحث في Google لاستكشاف الأخطاء وإصلاحها. وإليك كيفية استخدام مكتبتك الخاصة:

Create and publish an npm library, with TypeScript and Semantic Versioning

إذا كنت تتبع هذا الدليل، فيرجى تجربة مكتبتك الخاصة بدلاً من ذلك.

لقد وجدت أيضًا أن @backendbro لديه دليل أكثر تفصيلاً من هذا، إذا كنت ترغب في معرفة المزيد.

بعد نشر الكود الخاص بك، عندما تريد تحديث الكود، يمكنك تشغيل نشر npm مرة أخرى. ومع ذلك، قبل النشر، يجب عليك تحديث خاصية إصدار package.json، ويرجى الالتزام بالإصدار الدلالي.

أقترح عليك تجربتها! هل يمكنك نشر الإصدار v1.0.1 أو الإصدار v1.1.0 من مكتبتك واستخدامه في مشروع آخر مثل ما قمت به للتو؟ هل يمكنك معرفة كيفية تحديث إصدار مكتبة npm لديك؟

؟ استخدم تايب سكريبت

هذه المكتبة التي أنشأناها حتى الآن ليست حديثة، فهي تفتقر إلى تعريف النوع لذلك لا يمكن إبراز الأشخاص الذين يستخدمون مكتبتك أثناء الكتابة. أيضًا، يستخدم الأشخاص عادةً TypeScript مع بناء جملة ECMAScript. للتعرف على الفرق: وحدات Node.js: CommonJS مقابل ECMAScript بواسطة Saisathish

لكنني سأتخطى الإعداد التفصيلي لـ TypeScript في هذا المنشور. هناك العديد من البرامج التعليمية الجيدة لتعلم كيفية تهيئة مشروع TypeScript، مثل "كيفية تطوير مكتبة TypeScript" بواسطة inapeace0.

علاوة على ذلك، يمكنك استخدام مستودع TypeScript لقالب مثل alexjoverm/typescript-library-starter الذي قام بالفعل بدمج العديد من الأدوات الحديثة وأفضل الممارسات وما إلى ذلك.

سأذكر فقط بعض الملاحظات المهمة إذا كنت تنشر مكتبة TypeScript:

  1. قم بالإنشاء قبل النشر. إذا كنت بحاجة إلى نشره للعامة، فيمكن للأشخاص الذين لديهم بيئة Node.js الأكثر شيوعًا تنفيذ ملفات .js فقط. لذلك تحتاج إلى تجميع التعليمات البرمجية الخاصة بك باستخدام tsc، أو التراكمي (أو vit، الذي يستخدم التراكمي)، أو حزمة الويب؛ أي شخص بخير.
تحتاج إلى الإشارة بشكل صحيح إلى الملف المترجم باستخدام خصائص الوحدة النمطية أو الرئيسية أو خصائص الإدخال في package.json. يعد استخدام القالب وتعلمه واحدًا تلو الآخر خيارًا جيدًا. مرة أخرى، قام alexjoverm/typescript-library-starter بتحديدها بشكل جيد.

  1. تضمين ملف .d.ts. لنفس السبب، يحتاج المستخدم أيضًا إلى الوصول إلى توقيعات النوع.
ولكن إذا كنت متأكدًا من تشغيل مكتبتك على Deno أو Bun أو ts-node، فيمكنك تجاهل إرشاداتي المذكورة أعلاه لأنها تدعم تشغيل كود TypeScript محليًا.

يرجى محاولة اتباع الدليل لإنشاء مكتبة TypeScript ونشرها على npm. ولا يزال الأمر سهلاً، مثل المثال الأول. يجب عليك اختباره مع مشروع آخر باستخدام بناء جملة الاستيراد، ويمكنك رؤية تلميحات الكتابة باستخدام IDE.

باستخدام TypeScript، يمكنني كتابة مكتبتي بهذه الصيغة:

Create and publish an npm library, with TypeScript and Semantic Versioning

وبعد النشر، يمكنني تثبيته واستيراده، ورؤية تلميحات الكتابة بفضل TypeScript.

Create and publish an npm library, with TypeScript and Semantic Versioning

✨ الإصدار الدلالي

هناك مشكلة شائعة ولكنها متقدمة بعض الشيء في انتظار حلها: في كل مرة نقوم بتحديث الحزمة الخاصة بنا، نحتاج إلى تعديل رمز الإصدار.

هذا أمر مزعج، خاصة إذا كنت تقوم بتحديث الكود الخاص بك بشكل متكرر.

ومع ذلك، هناك أدوات لمساعدتك.

    الإصدار الدلالي: تلقائي بالكامل؛ يمكنك دمجه في GitHub CI لتحديث رمز الإصدار تلقائيًا ونشره على npm في كل مرة تقوم فيها بتحديث الكود الخاص بك على GitHub.
  • Release-it: يساعدك أيضًا على تحسين الإصدار، ولكنه سهل الاستخدام (لا حاجة إلى معرفة CI)؛ وفي الوقت نفسه، لا يمكنك تكوينه ليكون آليًا بالكامل.

Create and publish an npm library, with TypeScript and Semantic Versioning

لقد استخدمت ChatGPT لإنشاء هذا الملخص لمقارنة الأداتين. بالنسبة للمبرمجين الجدد، أقترح عليك تجربة إطلاقه، ولكن الإصدار الدلالي يكون مناسبًا أيضًا إذا كنت تعرف كيفية دمجه مع CI.

سأوضح لك في هذا المنشور كيفية استخدام Release-it، حسنًا، بعد إجراء التغيير على المشروع، ما عليك سوى تشغيل هذا في مشروعك:


إصدار npx-it
npx release-it
واختر هل هو تغيير بسيط أم تغيير كبير، وبذلك تكون قد انتهيت!

Create and publish an npm library, with TypeScript and Semantic Versioning


ملخص

إذن هذا هو الحال! لقد اجتزنا عملية نشر مكتبة npm بسيطة، وتحديثها، وحتى استخدام TypeScript لجعلها أكثر حداثة وقوة. تذكر أن:

  • قم بتصدير وظائفك بشكل صحيح حتى يتمكن الآخرون من استخدامها.
  • قم بتحديث أرقام الإصدارات الخاصة بك بعد الإصدار الدلالي.
  • فكر في استخدام TypeScript لتحسين أمان الكتابة وتجربة المطورين.
  • أتمتة إصداراتك باستخدام أدوات مثل الإصدار أو الإصدار الدلالي لتوفير الوقت.
جربها! انشر مكتبتك الخاصة، وقم بتحديثها، وشاهد كيف تشعر بالمساهمة في النظام البيئي npm. برمجة سعيدة!

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/remi-guan/create-and-publish-an-npm-library-with-typescript-and-semantic-versioning-9l?1 إذا كان هناك أي انتهاك، من فضلك اتصل بـ [email protected]
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3