簡體   English   中英

構建React 0.12項目的正確方法是什么?

[英]What is the proper way to build a React 0.12 Project?

我剛剛從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后,我收到消息“ Warning: Something is calling a React component directly. Use a factory or JSX instead. See: h[ttp://fb.me/react-legacyfactory][1] ”該代碼可以工作,但是顯然我正在使用一些舊約定。 我閱讀了react-legacyfactory和新文檔 ,看來我要做的就是向項目添加require,然后調用var React = require('react'); 我這樣做了,我什至為我的package.json添加了react和reactify,以防萬一,但是現在我得到了“ Uncaught Error: Module name "react" has not been loaded yet for context: _. Use require([])我對require或現在如何構建React並不十分熟悉。 串聯我所有的JS文件是否與React項目現在應該如何工作相矛盾?

您正在使用什么版本的grunt-react? 我相信,如果您在頁面中使用最新版本的react,但是您使用較舊版本的react-tools編譯了jsx,則會收到此錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM