2013-03-20 7 views
11

Zgodnie z tytułem moje wywołania funkcji inline wymagają pracy w niezoptymalizowanym trybie uruchamiania przez requirewy, ale nie działają, gdy są zbudowane z pomrukiem i almondjs.Funkcja Inline require() działa w trybie requirejs, ale nie w przypadku zoptymalizowanej budowy migdałów.

Uncaught Error: undefined missing views/some/view 

Wierzchołek każdego pliku może być:

define(
['jquery', 'app'], 
function($, App) { 

a później na podstawie logiki biznesowej Chcę móc wymagać innego pliku

require(['views/some/view'], function(SomeView){ 
    console.log(SomeView); 
}); 

Próbowałem składnię alternatywną a także:

var SomeView= require('views/some/view'); 

A wszystko to działa za pomocą niezabudowanej wersji requirejs. Ale znowu nie powiedzie się, kiedy go zbudować z pomrukiem i migdałów

requirejs: { 
     compile: { 
      options: { 
       name: "../components/almond/almond", 
       baseUrl: "src", 
       mainConfigFile: "./require.config.js", 
       include: ['main'], 
       insertRequire: ['main'], // Add a require step in at the end for the main module. 
       wrap: true, // Wrap everything up in a closure 
       generateSourceMaps: true, // Experimental 
       preserveLicenseComments: false, // Needs turned off for generateSourceMaps 
       optimize: "uglify2", // Supports generateSourceMaps 
       out: "assets/javascripts/build.js" 
      } 
     } 
    }, 

mogę to działa dobrze w migdałów czy mogę umieścić go w górnej części pliku w wywołaniu zdefiniowania, ale nie jest to korzystne, AMD, aby utrzymać ją szczupłą?

Odpowiedz

10

Zgodnie z dokumentacją Almond działa najlepiej z niedynamicznym ładowaniem i wszystkim zapakowanymi do jednego pliku.

Powinieneś być w stanie ustawić "findNestedDependencies" na true w opcjach kompilacji, aby upewnić się, że wbudowane połączenia wymagają włączenia jako część kompilacji.

+0

+1 Miał ten sam problem i to rozwiązało. – daemon

+0

Dzięki, uratowałeś mój dzień! – njtman

Powiązane problemy