2016-01-04 3 views
1

Я пытаюсь использовать React как часть дополнения firefox, над которым я работаю. Реакция работает нормально, пока я не использую jsx. Babel не работает - потому что я не могу указать тип добавляемого скрипта.Firefox Addon SDK: поддержка Babel

Я делаю:

tabs.open({             
    url: 'index.html', 
    onReady: function(tab){ 
     var worker = tab.attach({ 
      contentScriptFile: [ 
       './jquery-2.1.4.min.js', 
       '../node_modules/react/dist/react.js', 
       '../node_modules/react-dom/dist/react-dom.js', 
       '../node_modules/babel-preset-react/index.js', 
       './js/main.js', // the file i need to specify as type: text/babel 
      ], 
     }); 
    } 
); 

В идеале я бы возможность установить свойство типа на './js/main.js' сценарий, но документы, кажется, не имеют ничего.

ответ

0

Трюк заключается в том, чтобы загрузить реакцию, jquery, babel и ваш jsx прямо в ваш html, как вы обычно это делаете. Файлы javascripts, которые вам придется загружать с использованием параметра contentScriptFile, - это те, которые вам нужны для загрузки логики для связи с главным js-файлом аддона.

Пример для действительного HTML будет:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="UTF-8" /> 
    <title>Hello React!</title> 
    <script src="react-with-addons.js"></script> 
    <script src="react-dom.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script> 
    </head> 
    <body> 
    <h1>Hello!</h1> 
    <div id="example"></div> 
    <script type="text/babel"> 
     ReactDOM.render(
     <p>Hello, world!</p>, 
     document.getElementById('example') 
    ); 
    </script> 
    </body> 
</html> 

Если вы скажете мне, что вам нужно сделать в этом сценарии HTML/контента Я могу дать вам пример того, как вы можете сделать, чтобы сообщить об этом с основной сценарий.

+0

Первоначально, это то, что я пробовал. У меня были трудности с этим - возможно, потому, что у меня были общие проблемы с добавлением дополнительных скриптов. Я еще раз посмотрю на это позже и посмотрю, смогу ли я его повторить. – thelastshadow

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