2016-10-07 4 views
0

Работа над проектом, который получает свое содержание с ProtoBuff. Сделал работу один раз с загрузкой JavaScripts в HTML. Теперь рефакторинг для использования requirejs для загрузки скриптов. Но когда я пытаюсь использовать скрипты, он дает ошибку, говоря, что скрипты не загружаются.Загрузка: long, ByteBuffer и ProtoBuff с 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.config после того, как нормальный метод requirejs не работал ... Он красиво загружает другие скрипты. – Flummox

ответ

1

Вы должны убедиться, что у вас есть requirejs подключили правильно и что у вас есть соответствующая библиотека прото загружена.

Вы можете использовать беседку для управления зависимостями. Установите 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

 Смежные вопросы

  • Нет связанных вопросов^_^