2

スタンドアロンライブラリとして機能する小型化されたファイルでReact + ReactDOMをRequireJSで使用しようとしています。縮小したファイルでRequireJSとReact-domを使用する

私はReactを使用することができましたが、ReactDOMを使用しようとすると、これまでに見つかった可能性のある原因は、「require-dom "requireは、拡張されたファイルからコードをロードするのではなく、" react-dom "というファイルをインポートしようとします。 (実際には反応-domを含む)。

実際、私はgruntを使用してすべてのrequireファイルをプリコンパイルしています。次のように私はhtmlファイルに含める

define(['jquery', 'react', 'react-dom'], function($, React, ReactDOM) { 
    return { 
    react: React, 
    reactDOM: ReactDOM, 
    } 
}); 

上記の構成ですべてのコードをコンパイルした後:次のように

requirejs: { 
    build: { 
    options: { 
     baseUrl: './build/', 
     paths: { 
     'jquery': '../bower_components/jquery/dist/jquery.min', 
     'react': '../bower_components/react/react.min', 
     'react-dom': '../bower_components/react/react-dom.min' 
     }, 
     include: ['main'], 
     out: 'dist/library.min.js', 
     optimize: 'uglify2' 
    } 
    } 
} 

Main.jsがある:ここに私の作男requirejs構成です

次のように
<html> 
    <head> 
    <script src="../bower_components/requirejs/require.js"></script> 
    <script src="index.js"></script> 
    </head> 
    <body></body> 
</html> 

Index.jsはrequirejsファイルです:

requirejs.config({ 
    baseUrl: 'src', 
    paths: { 
    mylib: 'lib/dist/library.min.js' 
    } 
}); 

require(['mylib'], function(mylib) { 
    console.log(mylib); 
}); 

上記のコードを実行するとき、私は受信していエラーは、以下である:

require.js:1958 GET file:///D:/code/example/user/src/src/react-dom.js net::ERR_FILE_NOT_FOUND 
req.load @ require.js:1958 
load @ require.js:1682load @ require.js:832 
fetch @ require.js:822check @ require.js:854 
enable @ require.js:1173 
enable @ require.js:1554 
(anonymous function) @ require.js:1158 
(anonymous function) @ require.js:134 
each @ require.js:59enable @ require.js:1110 
init @ require.js:786(anonymous function) @ require.js:1457 

require.js:168 Uncaught Error: Script error for "react-dom"(…) 

Iが円滑反応-DOMすべての荷重を削除した場合。

これまでのところいくつかのことを試してみましたが、インポートするとシムとして反応するので、react-domはグローバルなReact varを検出しますが、どちらもうまくいきません。

ご協力いただきありがとうございます。

更新:Github repo with example code

アップデート2:反応-DOMをLIBのデバッグの間、私はmainメソッドが呼び出しの前に実行されますことを発見した縮小さスクリプトの後「「(定義react-dom ') "を定義しているので、問題は、" react-dom "を定義するコードが実行されるまで、メインスクリプトをどのように待たせるかのように解かれます。

+0

あなたはGitHub経由で最小限の例を共有することを検討しましたか? – prosti

+0

アドバイスをいただき、ありがとうございます。 –

+0

例Github repoが追加されました。 –

答えて

0

React 15.4.1(昨日リリースされたばかり)の新バージョンのように見えますが、この問題は解決しました。あなたのbower.jsonでバージョンを更新した後、もう一度お試しください!

関連する問題