2013-03-07 14 views
12

Próbuję zbudować moje moduły require.js do jednego pliku javascript do produkcji.Require.js nie kompiluje pojedynczego pliku js poprawnie

Komenda biegnę jest ...

r.js -o name=main out=main.min.js mainConfigFile=main.js 

To kompiluje ale skompilowany plik main.min.js nie jest skompilowany poprawnie i nadal obejmuje „define” bloki oświadczenie. a przeglądarka oczywiście zwraca

Uncaught ReferenceError: define is not defined 

Mój plik main.js wygląda następująco:

require.config({ 
    paths: { 
     jquery: 'libs/jquery/jquery', 
    }, 
    shim: { 
     bootstrap: { 
      deps: ['jquery'], 
      exports: 'jquery' 
     } 
    } 
}); 
require(['app', 'jquery'], function (app, $) { 
    'use strict'; 
    // use app here 
    console.log(app); 
    console.log('Running jQuery %s', $().jquery); 
}); 

Proszę dać mi znać, co mam z widokiem tutaj. Dzięki!

+1

Może pracowali go ... podaję require.js w kompilacji. np. r.js -o name = main out = main.min.js mainConfigFile = main.js include = libs/requirejs/require.js czy to prawda? – markstewie

+1

Masz rację, że RequireJS musi również zostać dołączony do minified file. Ponadto, jeśli chcesz zmniejszyć rozmiar pliku js, spróbuj użyć Migdał. Jest to niewielki alternatywny program ładujący napisany przez tego samego autora, co RequireJS, który został zaprojektowany do użycia w minowanych kompilacjach produkcyjnych. – cspotcode

Odpowiedz

20

Masz rację, musisz uwzględnić requireJS w swojej kompilacji. Spójrz na http://requirejs.org/docs/optimization.html#onejs. Znajdziesz tam przykład dla linii poleceń. Jeśli używasz kompilacji profil będzie to wyglądać mniej więcej tak -

({ 
baseUrl: "../Scripts", 
paths: { 
    requireLib: 'libs/require' 
}, 
name: "main", 
out: "main-built.js", 
include: ["requireLib"] 
}) 
+1

Dzięki za szczegółową odpowiedź. – markstewie

+0

totalny ratownik. – mix3d

+0

thx o pomoc: D – Mateusz

0

Szybka poprawka: korzystanie r.js -o build.js zamiast node r.js -o build.js


miałem problem, gdy próbowałem zadzwonić r.js przez węzeł:

node r.js -o build.js

Cal ling r.js bezpośrednio rozwiązaniu problemu:

r.js -o build.js

Uwaga: r.js został zainstalowany globalnie npm install -g requirejs

Powiązane problemy