SORU
13 Mayıs 2013, PAZARTESİ


CommonJS, AMD ve RequireJS ilişkisi?

Çok CommonJS, AMD ve RequireJS hakkında kafam karıştı. Hatta bir çok okuduktan sonra.

CommonJS (eski ServerJS) dili dışında bir tarayıcı kullanıldığında bazı JavaScript özellikleri (yani modüller) tanımlayan bir grup olduğunu biliyorum. CommonJS modülleri şartname Node.js ya RingoJS gibi Bazı uygulama vardır, değil mi?

CommonJS, zaman Uyumsuz bir Modül Tanım (AMD) ve RequireJS arasındaki ilişki nedir? RequireJS CommonJS modül tanımının bir uygulama mı? Evet, AMD ne o zaman?

CEVAP
13 Mayıs 2013, PAZARTESİ


RequireJSuygularAMD(source) API.

CommonJSexports bir nesne yardımıyla modülleri tanımlamanın bir yolu, bu modül içeriğini tanımlar. Sadece CommonJS bir uygulama koymak böyle işe yarayabilir

// someModule.js
exports.doSomething = function() { return "foo"; };

//otherModule.js
var someModule = require('someModule'); // in the vein of node    
exports.doSomethingElse = function() { return someModule.doSomething()   "bar"; };

Temelde CommonJS belirten yapmamız gereken bir require() işlev getir bağımlılıkları exports değişken ihracat modülü içindekiler ve bazı modül tanımlayıcı (bu açıklar konumu modülünde soru ile ilgili olarak bu modülü) için kullanılan gerektirir bağımlılıklar(source). CommonJS çeşitli uygulamalar, örneğin vardırNode.jssizin de bahsettiğiniz gibi.

CommonJS özellikle akılda tarayıcıları ile tasarlanmıştır, tarayıcı ortamı için çok uygun değil (Gerçekten bunun için hiçbir kaynak yok, sadece her yerde, örneğin the RequireJS site. öyle diyor). Görünüşe göre bu zaman uyumsuz yükleme vs. ile ilgili bir şey var.

Tam tersine, RequireJS tarayıcı ortamına göre tasarlanmış olan AMD, (source) uygular. CommonJS bir offspin biçimi Taşımacılık ve kendi modülü tanım API dönüşünce görünüşe göre AMD başladı. İkisi arasındaki similiarities dolayısıyla. AMD yeni bir şey modül yüklenmeden önce bağımlılıklarından ilan veren define() -işlev. Örneğin tanımı olabilir:

define('module/id/string', ['module', 'dependency', 'array'], 
function(module, factory function) {
  return ModuleContents;  
});

CommonJS ve AMDJavaScriptmodül tanımı bu farklı uygulamaları var APİs, ama her ikisi de aynı kökenden gelir.

  • AMDmodül bağımlılıkları zaman uyumsuz yükleme destekler çünkü tarayıcı için daha uygundur.
  • RequireJSbir uygulamaAMDaynı zamanda ruhunu tutmaya çalışıyorumCommonJS(özellikle modül tanımlayıcıları).

AMD bir uygulama olurken daha da şaşırtmak için, RequireJS,, CommonJS modülleri doğrudan RequireJS ile kullanmak alınabilir, böylece neredeyse CommonJS sarıcı sunmaktadır.

define(function(require, exports, module) {
  var someModule = require('someModule'); // in the vein of node    
  exports.doSomethingElse = function() { return someModule.doSomething()   "bar"; };
});

Bu şeyleri netleştirmek için yardımcı oldu umut!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bryan Smith

    Bryan Smith

    12 Mart 2006
  • Pocketnow

    Pocketnow

    14 EKİM 2007
  • Crossover

    Crossover

    18 HAZİRAN 2007