مرجع سريع

ورقة غش تعريف الوحدات الشامل Universal Module Definition (UMD)

دليل مرجعي سريع لأنماط UMD في جافا سكريبت لإنشاء وحدات برمجية متوافقة مع AMD (RequireJS) و CommonJS (Node.js) والمتغيرات العامة في المتصفح.

· تاريخ النشر

يتيح نمط تعريف الوحدات الشامل (UMD - Universal Module Definition) إنشاء مكتبات جافا سكريبت تعمل بسلاسة عبر بيئات CommonJS (Node.js) و AMD (RequireJS) وبيئات وسوم <script> في المتصفحات.

نمط UMD مع وجود تبعيات خارجية

;(function (root, factory) {
  if (typeof define === 'function' && define.amd) {
    // AMD. التسجيل كوحدة مجهولة الاسم
    define(['b'], factory);
  } else if (typeof module === 'object' && module.exports) {
    // بيئة Node.js / CommonJS
    module.exports = factory(require('b'));
  } else {
    // المتغيرات العامة في المتصفح (root يمثل كائن window)
    root.myModule = factory(root.b);
  }
}(typeof self !== 'undefined' ? self : this, function (b) {
  // تنفيذ الوحدة البرمجية
  function myModule() {}
  myModule.prototype.doSomething = function () {};

  return myModule;
}));

نمط UMD المستقل دون تبعيات

;(function (root, factory) {
  if (typeof define === 'function' && define.amd) {
    define([], factory);
  } else if (typeof module === 'object' && module.exports) {
    module.exports = factory();
  } else {
    root.myUtility = factory();
  }
}(typeof self !== 'undefined' ? self : this, function () {
  return {
    greet: function (name) {
      return 'مرحباً، ' + name + '!';
    }
  };
}));

مراجع مفيدة

موضوعات ذات صلة