2012-11-13 17 views
5

Geçerli proje ortamına (örneğin geliştirme veya üretim) göre farklı dosyaları yüklemek için herhangi bir işlev var mı? Kastettiğim şey, küçültülmüş ya da tam dosyaları yüklememe yardımcı oluyor. Multiversion yüklemesi hakkında okudum, ancak multiversioning dosya versiyonunu belirtmem gerektiği anlamına geliyor.
Örneğin, modülüm ile module.js dosyası var. Bu dosyada jQuery yüklemek gerekir:RequireJS: çevreye göre farklı dosyaları yükleme

require(['jquery]); 

Ama minified ve jQuery tam sürümü var ve farklı dosyaları yüklemek istiyorum. Aşağıdaki gibi bir şey düşünün:

require.config({ 
     paths: { 
      'jquery' : function(){ 
       if(MODE == 'DEV'){ 
        return 'jquery'; 
       }else{ 
        return 'jquery.min' 
       } 
      } 
     } 
    }); 

Ya da belki benzer bir şey.

cevap

1

birisi varsa hala bunun nasıl bilmek istiyorum:

require.config({ 
    paths: { 
     'jquery' : (function(){ 
      if(MODE == 'DEV'){ 
       return 'jquery'; 
      }else{ 
       return 'jquery.min' 
      } 
     })() 
    } 
}); 

Bu fonksiyon anonim fonksiyonu çağıran kendini. Tanım yerinde hemen çağırır.

2

the r.js optimizer kullanırsanız, bu işlem sizin için halledilebilir. scripts klasörünüzde, tüm modülleri, lib'leri ve diğer kodları dev amaçlarla sıkıştırılmış olarak bırakın. Sık sık bu

scripts/ 
    lib/ 
    modules/ 

gibi bir şey olduğunda göreve hazır bir build.js oluşturmak ve çeşitli seçenekleri yapılandırdık. Bu seçeneklerin can be found in this example configuration her biri üzerinde

({ 
    baseUrl: '../scripts', 
    dir: '../scripts.min', 

    paths: { 
     'jquery': 'lib/jquery' 
    }, 

    removeCombined: true, 

    optimize: 'uglify', 
    preserveLicenseComments: false, 
    uglify: { 
     max_line_length: 3500, 
     no_copyright: true 
    }, 

    modules: [ 
     { 
      name: 'module1' 
     }, 
     { 
      name: 'module2', 
      exclude: ['jquery'] 
     } 
    ] 
}) 

Diğer ayrıntılar ama dir dikkat çekecek ve komut sona erecek nerede removeCombined

dir besbelli: Ben kullandım benzer config bir örnek vereyim yukarı. Komut dosyalarına bitişik bir dosya oluşturmak için .min son eki veya benzeri bir şey oluşturmaya eğilimliyim. Eğer üretime hazırsınız Ardından, basitçe Varsayılan olarak scripts.min

require.config({ 
    baseUrl: '/scripts.min' // Now the site will load scripts from the optimised folder 

    // Other options 
}) 

için sizin yapılandırma baseUrl gerektiren değiştirmek r.js olursa olsun zaten başka js altında birleştirilmiştir bakılmaksızın her yerinde komut kopyalar dosya ya da değil. removeCombined değerini true olarak ayarlamak, scripts.min klasörünüzün yalnızca üretim için gerekli dosyalara sahip olmasını sağlayacaktır.

İlgili konular