2013-04-09 4 views
1

Je suis en train d'exécuter plusieurs problèmes lorsque j'essaie d'exécuter le noeud RequireJS sur mon projet.Optimiseur RequireJS avec coffeescript

C'est ma structure de dossier:

-root 
    -/src 
     -App.coffee 

    -/static 
     -/vendor 
      -/plugin 
       -r.js 
       -coffee-script.js 

      -/lib 
       -jquery.js 

      -main.js 

    -build.js 

Ceci est mon fichier build.js:

({ 
    appDir   : './', 
    baseUrl   : './static/js/', 
    dir    : '../public', 
    optimize  : 'uglify', 
    exclude   : ['coffee-script'], 
    stubModules  : ['cs'], 

    paths: { 

     // Libraries 

     'modernizr'  : 'vendor/modernizr', 
     'jquery'  : ['//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min', 'vendor/jquery'], 
     'jqueryui'  : 'vendor/jquery-ui', 
     'backbone'  : 'vendor/backbone', 
     'underscore' : 'vendor/underscore', 

     // Plugins 

     'plugin'  : 'plugin/plugin', 

     // RequireJS 

     'cs'   : 'plugin/cs', 
     'coffee-script' : 'plugin/coffee-script' 

    }, 
    shim: { 

     'jqueryui' : ['jquery'], 

     'underscore': { 
      exports: '_' 
     }, 

     'backbone': { 
      deps: ['underscore', 'jquery'], 
      exports: 'Backbone' 
     } 
    }, 
    modules: [{ 
     name: "main" 
    }] 
}) 

Et enfin voici mon fichier main.js:

require({ 
    baseUrl : '../../src/', 
    paths: { 
    cs: '../../cs', 
    'coffee-script': '../../coffee-script' 
    } 
}, ['cs!App']); 

I Je reçois toujours une erreur liée à un mauvais réglage de chemin et je ne peux pas déterminer où je me trompe.

Merci!

Répondre

0

La solution ci-dessous a fonctionné dans mon cas. C'est un problème commun avec les modules non-amd importés avec shim ou encapsulés manuellement (par exemple this un, avec des chemins personnalisés). Essayez d'éviter les chemins relatifs et utilisez à la place les chemins absolus à la place. Une dépendance appelée à partir d'un module alias utilisera son emplacement actuel pour trouver le module requis.

require.config(
{ 
    locale: window.GIS.i18n.locale, 
    deps: ['cs!modules/main'], 
    paths: { 
    'i18n'      : 'i18n', 
    'underscore'     : 'libs/underscore', 
    'cs'       : 'libs/cs', // there's no '../something/else/libs/cs' 
    'CoffeeScript'    : 'libs/coffeescript', // ibidem. 
    'text'      : 'libs/text', 
    // ... other amd module aliases go here... 
    }, 

    shim:{ 
    // ... 
    } 

}); 

define(['cs!modules/main'], function(){}); 

Bien sûr, ce ne sont pas des chemins absolus en soi, mais ils sont liés à la racine de l'arborescence du module.