2015-06-07 28 views
6

Gereksinimler olmadan j'lerin düzgün çalışması gerekir. Ama ne zaman bir paket kullanırsam, içe aktarmaya çalıştığım modüller için zaman aşımları alırım. i asp.net mvc bundler ile demetleri/minifierPaketleri kullanırken RequireJS modülü yükleme zaman aşımı

bundles.Add(new ScriptBundle("~/bundles/test").Include(
      "~/scripts/jquery-{version}.js", 
      "~/scripts/bootstrap.js", 
      "~/scripts/moment.js")); 

bundles.EnableOptimizations = true; 

İşte olduğunu nasıl inşa İşte

olduğunu js yapılandırma cshtml dosyasında gerektirir:

<script> 
    require.config({ 
     baseUrl: "/scripts", 
     paths: { 
      jquery: "jquery-1.11.2" 
     }, 
     waitSeconds: 20, 
     shim: { 
      bootstrap: { 
       deps: ['jquery'] 
      } 
     }, 
     bundles: { 
      '@Scripts.Url("~/bundles/test").ToString()': [ 
       'jquery', 
       'bootstrap', 
       'moment' 
      ] 
     } 
    }); 
    require(["app/main/test"]); 
</script> 

Ve için js sayfası (app/ana/testi):

JQuery, önyükleme ve moment kütüphaneleri testi paket içindedir
require(['jquery', 'moment'], function ($, moment) { 
    console.log(moment().format()); 
}); 

i CRE var ated, ama an için sayfa yükleme yükleme zaman aşımları olsun.

load timeout

Herhangi bir fikir:

Burada krom müfettişi hata var? peşin

teşekkürler. Eğer hiç Paketinizi gerektirmeyen çünkü

cevap

0

Bu gerçekleşiyor. İhtiyaç aramanız sadece jquery ve moment var. Jquery dosya yolunu sağladınız, bu yüzden requirejs jQuery modülünü indirmek ve sağlamak için bu yolu kullanır. Fakat an için yol tanımlaması olmadığı için, yarattığınız grubun sadece bir parçası. Bu yüzden requires, modül adıyla anı yol olarak indirmeyi dener ve böylece bir hata atar.

Bunun için basit bir düzeltme, paketin kendisini gerektirir. Seçebilirsiniz

require(['@Scripts.Url("~/bundles/test").ToString()'], function(bundle){ 
    //At this point jquery, moment and bootstrap will be loaded. 
}); 

doğrudan jQuery, yukarıdaki örnekte genel ad gelen anı kullanmak veya örneğin aşağıda ayrı ayrı bunları gerektiren deneyebilirsiniz. Emin değilim ama örnekte döngüsel bağımlılık nedeniyle hatayla karşılaşabilirsiniz.

paths: { 
    jquery: "jquery-1.11.2" 
}, 

O görünmek

require(['@Scripts.Url("~/bundles/test").ToString()', 'jquery', 'moment'], function(bundle, $, moment){ 
     //At this point jquery, moment and bootstrap will be loaded. 
    }); 
0

Sadece Zaten bu yollara belirttiğiniz senin demetleri

bundles.Add(new ScriptBundle("~/bundles/test").Include(
     "~/scripts/bootstrap.js", 
     "~/scripts/moment.js")); 
... 
bundles: { 
    '@Scripts.Url("~/bundles/test").ToString()': [ 
     'bootstrap', 
     'moment' 
    ] 
} 
... 

den 'jquery' kaldırmak s require.js, modülleri paketlere eşler, böylece bir paketin parçası olan bir modül yüklendiğinde, bu paket tekrar yüklenmez.