2013-04-09 2 views
1

내 프로젝트에서 RequireJS 노드를 실행하려고 할 때마다 문제가 발생합니다. 이건 내 build.js 파일coffeescript가 필요한 JJ 최적화 도구

-root 
    -/src 
     -App.coffee 

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

      -/lib 
       -jquery.js 

      -main.js 

    -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" 
    }] 
}) 

이 마지막이 내 main.js 파일입니다

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

I

이 내 폴더 구조 잘못된 경로 설정과 관련하여 항상 오류가 발생하며 잘못된 위치를 파악할 수 없습니다.

감사합니다.

답변

0

내 경우에는 아래 해결 방법이 효과적이었습니다. 심과 함께 가져온 또는 수동으로 포장 한 비 amd 모듈의 일반적인 문제입니다 (예 : this, 맞춤 경로 포함).

상대 경로를 피하고 대신 경로를 사용하십시오. 별명이 지정된 모듈에서 호출 된 종속성은 현재 위치를 사용하여 필요한 모듈을 찾습니다.

물론
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(){}); 

1 , 이들은하지 절대 경로 그 자체이지만, 그들은 당신의 모듈 트리의 루트를 기준으로합니다.