Question

Nous avons juste commencé à utiliser requirejs dans notre projet et nous aimons il. À l'heure actuelle, nous utilisons seulement pour gérer nos nombreux plugins jQuery le site fonctionne, donc se grattent à peine la surface de son potentiel ... mais en raison de contraintes de temps cela doit attendre.

Je vais avoir quelques problèmes pour faire le jeu optimiseur que je voudrais à, Je me demande si vous pouviez me dire s'il est encore possible de le faire. Ma structure de répertoire:

> /common/
> /common/*.js - common plugins used on most pages on the site
> /infrequent/
> /infrequent/infrequentModule.js
> /infrequent/ckeditor
> /infrequent/ckeditor/1000s.js
> /require.js
> /jquery.js
> /main.js - this file contains all scripts in common. It looks at the page and call the necessary plugins.

Optimisation / build espoir:

  • main.js contiendrait tous les scripts communs. Sur la plupart des pages de ce script sera le seul chargé (sauf require.js)
  • main.js regarde à la page, si elle voit ce qu'il a besoin d'un plug-in / modules peu fréquents il charge que async. Donc, sur une page peu fréquente, je peux charger require.js, main.js et infrequentModule.js.

J'ai essayé différentes méthodes dans le script de construction exclure et inclure des fichiers pour obtenir les résultats souhaités, mais en vain. Est-ce que quelqu'un a des idées ou savoir si cela est, en effet, possible?

Était-ce utile?

La solution

OK, donc je suis arrivé quelques grandes réponses sur le groupe Google pour require.js - http://groups.google.com/group/requirejs/browse_thread/thread/359b02473f4e707

Ce qui suit est une réponse utile m'a donné que je l'espère, aider quelqu'un d'autre ...

Salut, je suis en train de faire cela dans un de mes projets, voici mon build.js:

paths: { 
                //load libs from cdn 
                "jqueryUI": "jqueryUI", //temp static file for build 
                "swfobject": "swfobject", //temp static file for build 
                "Templates": "../Templates/Settings" 
        }, 
modules: [{ 
            name: "appName", 
                        excludeShallow: ["jqueryUI", "swfobject", "Modules/ 
module.preferences"] 
        } 

Ensuite, dans un de mes modules j'ai besoin appel à des modules / module.preferences que j'exécutons quand je besoin:

function loadPreferences(){ 
 require(["Modules/module.preferences"],function(){ 
                     //Execute some init code after the module has 
loaded 
         }) 
 } 
} 

Cela permet d'atteindre ce que vous décrivez où j'ai besoin et principal chargé la charge de la page, puis charge module.preferences async quand je besoin. Hope qui aide, Jeff.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top