2016-10-07 5 views
0

ProtoBuff으로 내용을 가져 오는 프로젝트 작업. HTML로 자바 스크립트를 로딩하면 한 번 작동합니다. 이제 requirejs를 사용하여 스크립트를로드하도록 리팩터링합니다. 그러나 스크립트를 사용하려고하면 스크립트가로드되지 않는다는 오류가 발생합니다.로딩 : long, ByteBuffer 및 ProtoBuff with requirejs

  • Require.js는 바우어 종속성을 관리하는 데 사용되는 index.html을
  • 에로드됩니다.

나는 여기에 (단순한) 일이 없다고 확신하지만, 도움이 되길 바랍니다.

requirejs.config({ 
    long : "long", 
    ByteBuffer : "ByteBuffer", 
    ProtoBuf : "ProtoBuf" 
}); 

requirejs([ "long", "ByteBuffer", "ProtoBuf" ], 
    function(long, ByteBuffer, ProtoBuf) { 
}); ​ 

파일의 long.js, ByteBuffer.js 및 ProtoBuf.js 모든이가 호출 될 App.js, 같은 맵에 있습니다.

*이 question about requirejs and ByteBuffer이 유망 해 보이지만 나는 여기에 뭔가 빠져 있다고 생각합니다. 이 작업을 수행

는 해당 파일의 기능 범위의 나머지 부분에서 액세스 할 수 있습니다 :

requirejs([ "otherPage", "differentPage" ], 
    function(util) { 
}); 
+0

흠 .. 일부 코드는 할 수 없습니다 아마도 일할 수 있습니다. 표시되는 키 - 값 쌍이 모두 ['paths'] (http://requirejs.org/docs/api.html#config-paths)에 있어야하므로 경로를 설정하려는 것처럼 보입니다. 하지만이 문제를 해결할 경우에도 '경로'에있는 것이 RequireJS가 기본적으로 수행하는 것일뿐 *므로 유일한 문제는 아닙니다. 'baseUrl' 설정을 올바른 값으로 설정해야 할 수도 있습니다. – Louis

+0

일반 requirejs 메서드가 작동하지 않아 requirejs.config를 추가하려고합니다 ... 다른 스크립트를 멋지게로드합니다. – Flummox

답변

1

당신은 당신이 제대로 엮은 requirejs이 있고 관련 프로토 라이브러리가로드되어 있는지 확인해야합니다.

bower를 사용하여 종속성을 관리 할 수 ​​있습니다. bower 설치하고

bower install long byteBuffer protobuf requirejs-text requirejs-proto 

마지막 코드는 다음과 같이 보일 수 있습니다

require.config({ 
    paths: { 
     'Long': '../../bower_components/long/dist/Long', 
     'ByteBuffer': '../../bower_components/byteBuffer/dist/ByteBufferAB', 
     'ProtoBuf': '../../bower_components/protobuf/dist/ProtoBuf', 
     'text': '../../bower_components/requirejs-text/text', 
     'proto': '../../bower_components/requirejs-proto/proto' 
    }, 
    proto: { 
     ext: 'proto', 
     convertFieldsToCamelCase: false, 
     populateAccessors: true 
    } 
}); 

require(['proto!test'], function(builder) { 
    var pack = builder.build('pack'); 
    var Message1 = builder.build('pack.Message1'); 
}); 

require(['proto!test::pack.Message1', 'proto!test::pack.Message2'], function(Message1, Message2) { 
    ... 
}); 

당신이 보여 구성 때문에 * 뭔가를 누락 * 예 https://www.npmjs.com/package/requirejs-proto

+0

잘 되었어! 고맙습니다! – Flummox