Javascript 构建React 0.12项目的正确方法是什么?

Javascript 构建React 0.12项目的正确方法是什么?,javascript,node.js,facebook,requirejs,reactjs,Javascript,Node.js,Facebook,Requirejs,Reactjs,我刚刚从React 0.11.1升级到0.12.2。到目前为止,我的代码结构是这样的,所以我的组件都在它们自己的目录中,我会使用Grunt将它们编译到一个javascript目录,然后将它们与React.js连接到一个文件中,以便在index.html中使用 Project |_index.html | JSX |_someFile.jsx | JS |_somefile.js | Lib |_rea

我刚刚从React 0.11.1升级到0.12.2。到目前为止,我的代码结构是这样的,所以我的组件都在它们自己的目录中,我会使用Grunt将它们编译到一个javascript目录,然后将它们与React.js连接到一个文件中,以便在index.html中使用

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'
            }
        },
    ...
    });
};
升级到React 0.12.2后,我收到一条警告消息:有东西正在直接调用React组件。使用工厂或JSX代替。见:h[ttp://fb.me/react-legacyfactory][1] 代码可以工作,但很明显我使用的是一些旧的约定。我读了新的,看起来我所要做的就是向项目中添加require,并调用var React=require'React';
我这样做了,我甚至在package.json中添加了react和reactify以防万一,但现在我得到了一个未捕获的错误:尚未为context加载模块名react:\ux。使用require[]我不太熟悉require,也不太熟悉React现在是如何构建的。连接我所有的JS文件是否与React项目现在应该如何工作相矛盾?

您使用的是grunt React的哪个版本?我相信如果您在页面中使用最新版本的react,但您使用较旧版本的react tools编译jsx,则会出现此错误。

在运行“npm update”和“npm-v grunt react”后,我有1.4.14版,我还将package.json中的所有内容都设置为使用*以保持最新,但看起来并没有解决我的问题。“npm-v”实际上只是返回npm的版本。如果运行“npm列表反应工具”,是否至少安装了0.12.0?| grunt-react@0.10.0| uu反应-tools@0.12.2| jshint-jsx@0.1.0无关的| uu反应-tools@0.10.0|反应-tools@0.13.0-beta.1 Invalid该错误看起来可能是在使用require.js,但建议使用browserify工具加载react模块。它还将处理将所有文件连接到单个包中的问题。