2015-02-08 7 views
0

Я только что обновился от React 0.11.1 до 0.12.2. До сих пор моя структура кода заключалась в том, что мои Компоненты были в их собственном каталоге, я бы использовал Grunt для компиляции их в javascript-каталог, а затем объединил с React.js в один файл для использования в index.html.Каков правильный способ создания проекта React 0.12?

Project 
    |_index.html 
    | JSX 
     |_someFile.jsx 
    | JS 
     |_somefile.js 
     | Lib 
      |_react.js 
    | Production 
     |_concatenated.js 


module.exports = function (grunt) { 
    grunt.initConfig({ 
     pkg: grunt.file.readJSON('package.json'), 
     react: { 
      dynamic_mappings: { 
       files: [ 
        { 
         expand: true, 
         cwd: 'jsx/', 
         src: ['*/*.jsx', '*.jsx'], 
         dest: 'js/', 
         ext: '.js' 
       } 
       ] 
      } 
     }, 
     concat: { 
      dist: { 
       src: ['js/lib/*.js', 'js/*/*.js'], 
       dest: 'prod/built.js' 
      } 
     }, 
    ... 
    }); 
}; 

После того, как я повышен до Реагировать 0.12.2 Я получил сообщение «Warning: Something is calling a React component directly. Use a factory or JSX instead. See: h[ttp://fb.me/react-legacyfactory][1]» Код будет работать, но очевидно, я использую некоторые старые соглашения. Я прочитал react-legacyfactory и новый documentation, он выглядел как все, что мне нужно было добавить, добавить проект, и позвонить var React = require('react'); Я сделал это, я даже добавил, что реагирую и реагирую на мой пакет.json на всякий случай, но теперь я получаю «Uncaught Error: Module name "react" has not been loaded yet for context: _. Use require([])« Я не очень хорошо знаком с требованием или с тем, как сейчас создается Реакт. Сочетание всех моих JS-файлов противоречит тому, как должны работать проекты React?

+0

Эта ошибка выглядит так, как будто вы можете использовать require.js, но браузер является рекомендуемым инструментом для загрузки модуля с реакцией. Он также будет обрабатывать конкатенацию всех ваших файлов в один пакет. –

ответ

0

Какая версия grung-react вы используете? Я считаю, что вы получите эту ошибку, если используете последнюю версию реакции на своей странице, но вы собрали свой jsx с более старой версией инструментов реагирования.

+0

После запуска «npm update» и «npm -v grunt-react» у меня есть версия 1.4.14. Я также установил все в package.json, чтобы использовать «*», чтобы поддерживать его в актуальном состоянии, но не выглядит так, как будто он исправлен моя проблема. – EasilyBaffled

+0

'npm -v' на самом деле просто вернет версию npm. Если вы запустите «enpm list react-tools», вы установили хотя бы 0.12.0? –

+0

| [email protected] | _ [email protected] | [email protected] посторонние | _ [email protected] | [email protected] недействителен – EasilyBaffled

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