2014-04-14 3 views
0

utils 폴더에서 작성한 util.js 파일을 내 Backbone 응용 프로그램에로드하려하지만 RequireJS에 대해 사용하는 구성에 관계없이 파일은 Require로로드됩니다 (가능한 한 Dev 도구에서로드 된 상태로 표시). 그러나 뷰 자체에서는 항상 정의되지 않습니다. 지금까지 필자가 올바르게 파일을 정의한 것처럼 보일 수 있으며, paths var에 경로를 정의하고, paths을 정의하고 shim을 이름을 내보내는 requirejS 구성의 모든 다른 조합을 시도한 것으로 알 수 있습니다. 뷰에서 직접 경로를 선언하는 것 이외에는 정의 할 수 없지만 항상 정의되지는 않습니다.RequireJS 종속성이 정의되지 않았습니다.


js 
- views 
- controllers 
(etc) 
- utils 
    - util.js 

내가로드 노력하고있어 파일이 있습니다 :

내 폴더 구조는

util.js


define(function() { 
    return { 
     showMessage: function() { 
      console.log('show message'); 
     } 
    }; 
}); 

을 내가 말했듯이 나는 모든 시도했다 필수 설정의 종류.


require.config({ 
    paths : { 
     underscore : 'lib/lodash', 
     backbone : 'lib/backbone-1.0.0', 
     marionette : 'lib/backbone.marionette-1.1.0', 
     jquery  : 'lib/jquery-2.0.3.min', 
     //jquery  : 'lib/jquery-2.0.3', 
     tpl  : 'lib/tpl', 
     pnotify : 'lib/jquery.pnotify', 
     utils  : 'utils/util' 
    }, 
    shim : { 
     'lib/backbone-localStorage' : ['backbone'], 
     underscore: { 
      exports: '_' 
     }, 
     backbone: { 
      exports: 'Backbone', 
      deps: ['jquery','underscore'] 
     }, 
     marionette: { 
      exports: 'Backbone.Marionette', 
      deps: ['jquery', 'underscore', 'backbone'] 
     }, 
     pnotify: ['jquery'], 
     utils: { 
      exports: 'utils' 
     } 
    } 
}); 

require(['app'],function(app){ 
    app.start(); 
}); 

을 그리고 호출보기에 내가 (단지 유틸 가져 오기 보여 수정) 한 : 예를 들어, 현재 내가 가지고있는

 
define([ 
    'utils' 
], function (utils) { 
    "use strict";

return Marionette.Controller.extend({ 
    initialize: function() { 
     console.log(utils); // undefined 
    } 
}); 

});

내 다른 백본 모든 코드 (뷰, 모델, 콜렉션 등)은 잘로드되지만이 파일을로드 할 수 없습니다. 내가 여기서 무엇을 놓치고 있니?

답변

1

shim 정의가 필요하지 않습니다. 경로 선언은 사용 사례를 다루어야합니다.

정의한 심은 requirejs에게 utils/util.js를 의존성으로 나열하는 모듈에 제공하기 위해 'utils'라는 전역 이름을 찾아야한다고 말합니다. utils/util.js에서 requirejs 구문을 사용하고 전역을 만들지 않으므로 shim은 필요하지 않아야합니다.

+0

그래, RequireJS 구성에 아무것도 넣지 않고 'utils/util'로보기/컨트롤러 콜백으로 전달했지만 아직 정의되지는 않았지만 dev 도구로로드 된 것을 볼 수있다. – kasceled

+0

'utils/util'대신 'utils'로 전달하면 'shim'구성이 아닌 'paths'구성의 기능입니다. 심의 구성을 제거하고 그것을 'utils'로 참조하려고 했습니까? –

+0

최소한의 코드로 문제의 문제점을 나타내는 작업 요령을 만들었습니다. https://gist.github.com/chadxz/10680093 gist는 하위 디렉토리를 허용하지 않기 때문에 각 파일의 위치를 ​​파일 상단의 주석에 넣어야합니다. –

관련 문제