2013-07-09 16 views
7

Ho scritto un'applicazione JavaScript utilizzando requirejs per gestire l'iniezione di dipendenza. Ho compilato il file, ma ottengo l'errore evidente quando compreso come uno script:compilazione javascript programma con requirejs per rimuovere richiedere la dipendenza

Uncaught ReferenceError: define is not defined

Vorrei che la mia applicazione JavaScript non dipendere da un caricatore AMD se lo sviluppatore decide di non utilizzare uno. Tuttavia, a causa della complessità dell'applicazione, mi piacerebbe usarlo per gestire le dipendenze della mia app.

C'è un compilatore che compila disponibili JavaScript per rimuovere la dipendenza AMD? Ho visto un po 'di buzz in giro per Grunt, ma non ho trovato nessuna risposta precisa sul fatto che questa sia una caratteristica di Grunt.

risposta

5

Non è possibile rimuovere completamente la dipendenza richiede/definire, ma è possibile sostituirlo con uno spessore molto più piccolo che non introduce alcuna penale prestazioni. Vedere la sezione How can I provide a library to others that does not depend on RequireJS? della Guida all'ottimizzazione:

If you are building a library for use on web pages that may not use RequireJS or an AMD loader, you can use the optimizer to combine all your modules into one file, then wrap them in a function and use an AMD API shim. This allows you to ship code that does not ship with all of RequireJS, and allows you to export any kind of API that works on a plain web page without an AMD loader.

almond is an AMD API shim that is very small, so it can be used in place of require.js when all of your modules are built into one file using the RequireJS optimizer. The wrap build config option will put a function wrapper around the code, or you can provide your own wrapper if you need to do extra logic.

Problemi correlati