2016-10-07 7 views
0

ProtoBuffでコンテンツを取得するプロジェクトで作業する。 HTMLでJavaScriptを読み込んで一度動作させました。スクリプトをロードするためにrequirejsを使用するようにリファクタリングしました。しかし、スクリプトを使用しようとすると、スクリプトがロードされていないことを示すエラーが表示されます。Loading: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)になければならないように、パスを設定しようとしていたようです。しかし、これは唯一の問題ではありません。もしあなたがこの修正をあらかじめ実行していても、 '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) { 
    ... 
}); 

あなたが示した構成ので、あなたは*何かが欠けている* YES https://www.npmjs.com/package/requirejs-proto

+0

これは機能しています!ありがとうございました! – Flummox