5

Gereksinimlerimi kullanmak için requirejs'yi kullanıyorum ve böylece ürün dizilerimi yapılandırarak kütüphanelerimi birleştiriyor ve aralarında modül sırasını ayarlıyordum. Kombine olmayan kütüphanelere erişime sahip olan livereload sunucumdayken runtime module enjeksiyonunu kullanırken problem yaşamadım. Netlik uğruna tüm minification/çirkinliği devre dışı bıraktım ve js-güzelleştirmeyi açtım.Shim kütüphanesi sarma değil grunt-contrib-requirejs

requirejs: { 
     dist: { 
      // Options: https://github.com/jrburke/r.js/blob/master/build/example.build.js 
      options: { 
       // `name` and `out` is set by grunt-usemin 
       // name: 'App', 
       baseUrl: yeomanConfig.app + '/scripts', 
       mainConfigFile: yeomanConfig.app + '/scripts/config.js', 
       out: yeomanConfig.dist + '/scripts/main.js', 
       optimize: 'none', 
       // TODO: Figure out how to make sourcemaps work with grunt-usemin 
       // https://github.com/yeoman/grunt-usemin/issues/30 
       //generateSourceMaps: true, 
       // required to support SourceMaps 
       // http://requirejs.org/docs/errors.html#sourcemapcomments 
       beautify: false, 
       removeCombined: false, 
       generateSourceMaps: false, 
       preserveLicenseComments: false, 
       useStrict: true, 
       mangle: false, 
       compress: false, 
       // wrap: true, 
       // https://github.com/mishoo/UglifyJS2 
      } 
     } 
    }, 

Kendo, Angular ve Angular-Keno-UI kullanıyorum. Kendo'nun AMD modülüne hazır olduğunu anlıyorum ama Angular-Keno-UI gibi görünmüyor. Ben bir shim oluşturmak için bekliyordum ve uygun requirejs tanım işlevi sarılmış, ancak ben bunun gerçekleşmesini bulamıyorum.

define('angular-kendo-ui', [ 
     'angular', 
     'kendo' 
     ], function (
     angular, 
     kendo 
    ) { 
     < original angular-kendo-ui source > 
    }); 

Ben dolgularının uygulamasını yanlış mı:

require.config({ 
     cjsTranslate: true, 
     paths: { 
      jquery: 'vendor/jquery/jquery', 
      'angular-kendo-ui': 'vendor/angular-kendo-ui/build/angular-kendo', 
      kendo: 'vendor/kendoui.complete.2013.2.918.trial/js/kendo.all.min', 
      angular: 'vendor/angular/angular', 
      requirejs: 'vendor/requirejs/require', 
      'angular-animate': 'vendor/angular-animate/angular-animate', 
      'angular-ui-router': 'vendor/angular-ui-router/release/angular-ui-router.min', 
      'angular-resource': 'vendor/angular-resource/angular-resource' 
     }, 
     shim: { 
      jquery: { 
       exports: '$' 
      }, 
      angular: { 
       deps: [ 
        'jquery' 
       ], 
       exports: 'angular' 
      }, 
      'angular-resource': { 
       deps: [ 
        'angular' 
       ] 
      }, 
      'angular-kendo-ui': { 
       deps: [ 
        'angular', 
        'kendo' 
       ] 
      }, 
      'angular-ui-router': { 
       deps: [ 
        'angular' 
       ] 
      } 
     } 
    }); 

modül olarak hazır olmadıklarını ben gibi kendim sarmak gidermek için? Görünüşe göre bu benim varmış gibi görünmüyor ve aslında modülün talep edilmesi durumunda (sadece dinamik modül yüklemesinde sorun yok)

Bu teknolojilerin ilk değerlendirmem sırasında SOMEWHERE Ihtiyaçlarımın (veya benim boru hattımdaki varlık mutatorlarından birinin) otomatik olarak benim için modülleri sarması için bir yol vardı. Herkesin benim için bir ipucu var, sanırım bu, yapılandırmada tanımlanan modülleri yol olarak dolduracak, fakat belki de yanılmışım. Aşağıda görevlerin bir çıktı olmanın koştu geçerli: Sadece bir tahmin (sizin iyileştirici sürümüne bağlı olarak) var ama

Done, without errors. 

    Elapsed time 
    build       887ms 
    useminPrepare:html    22ms 
    concurrent:dist    8s 
    autoprefixer:dist    174ms 
    requirejs:dist     19s 
    jsbeautifier:dist    2s 
    concat:public/styles/main.css 46ms 
    concat:public/scripts/main.js 56ms 
    cssmin:public/styles/main.css 81ms 
    copy:dist      26ms 
    usemin:html     5s 
    usemin:css      24s 

cevap

2

- hiç hoş değil - config-dokümantasyon burada devletler:

olarak 2.1 arasında .11, bağımlı bağımlılıklar ara bağımlılıklar AMD'nin kendi 'luk bağımlılıkları olduğunda yardımcı olmak için bir define() sarmalayıcısı 'a sarılabilir. Kanonik örnek, jQuery ve Underscore'ye bağlı olan Backbone'u kullanan bir projedir. Omurga kullanılabilir 'u kullanmak isteyen şimşek bağımlılıklar, bir yapıda hemen görüntülenmeyecektir, çünkü Omurga'nın AMD uyumlu sürümleri, bağımlılar hazır olana kadar define() işlevini yürütmeyecektir. Bu shimmed bağımlılıkları sararken, bu önlenebilir, ancak , bu shimmed bağımlılıklar garip şekillerde global kapsamı kullanırsanız, diğer hatalar verebilir, bu yüzden sarmak için varsayılan davranış değil.

belki kullanın: kullanarak "mainConfigFile" dolgu yapılandırma zaten optimizer olmalıdır çünkü

wrapShim: true 

https://github.com/jrburke/r.js/blob/master/build/example.build.js

, bu genellikle başarısızlığın bir başka noktadır.

+0

3 saatten fazla hata ayıklama sonrasında bu yanıtı buldum! – LessQuesar