2012-08-12 17 views
6

Próbuję użyć optymalizatora r.js do zbudowania wszystkich moich zależności w jednym pliku. Oto moja struktura plików:RequireJS/r.js 'baseURL' Właściwość Z pozoru ignorowana

app 
    bin 
    src 
    css 
     main.css 
    js 
     libs 
     raphael-2.1.0 
      eve.js 
      raphael.amd.js 
      raphael.core.js 
      raphael.svg.js 
      raphael.vml.js 
     jquery-1.8.0.js 
     require-2.0.5.js 
     main.js 
    build.js 
    index.html 
    r.js 

Oto treść build.js:

({ 
    baseURL: 'js', 
    dir: '../bin', 
    paths: { 
    'jquery': 'libs/jquery-1.8.0', 
    'raphael': 'libs/raphael-2.1.0/raphael.amd' 
    }, 
    name: 'main', 
    removeCombined: true 
}) 

'libs/raphael-2.1.0/raphael.amd' zależnościami ładuje wszystko w katalogu Raphael-2.1.0. Aplikacja działa zgodnie z oczekiwaniami, jeśli mogę odwiedzić app.local/src, ładuje moduły w czasie wykonywania przez wymagają z jednym znacznikiem skryptu w moim pliku index.html jak ten:

<script src="js/libs/require-2.0.5.js" data-main="js/main.js" type="text/javascript" charset="utf-8"></script> 

Jednakże jeśli próbuję uruchomić komenda node r.js -o src/build.js od aplikacji, pojawia się błąd jak:

Error: ERROR: module path does not exist: /app/src/main.js for module named: main. Path is relative to: /app 
at /app/r.js:14215:31 

... i wszystko zostanie skopiowane do kosza „jak jest”. Jeśli dodaję obiekt 'main': 'js/main' do obiektu ścieżki, to r.js nie może znaleźć jquery i raphael, jeśli podaję js/ ścieżkę jquery i raphael, wówczas deklaracje zależności libs/raphael-2.1.0/rapheal.amd są niepoprawne. Jeśli je zaktualizuję, wszystko będzie budowane zgodnie z oczekiwaniami, ale teraz aplikacja na app.local/src/index.html jest zepsuta. Ponadto, myślałem, że to było celem posiadania właściwości baseURL w pliku kompilacji nie? Wygląda mi na to, że baseURL jest ignorowany. Co ja robię źle?

+0

Mam ten sam problem i doprowadza mnie to do szału! – hamishtaplin

+0

@mysterycommand, czy znalazłeś rozwiązanie tego? – Reuben

Odpowiedz

0

Jak większość rzeczy w JavaScript, w ustawieniu baseUrl rozróżniana jest wielkość liter. Zmień adres URL na Url i sprawdź, czy to pomaga.

+0

Mam ten sam "problem". To naprawdę nie problem, ale po prostu zostanie zignorowany nawet przy użyciu baseUrl. – FlavorScape

Powiązane problemy