スタンドアロンライブラリとして機能する小型化されたファイルで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 "を定義するコードが実行されるまで、メインスクリプトをどのように待たせるかのように解かれます。
あなたはGitHub経由で最小限の例を共有することを検討しましたか? – prosti
アドバイスをいただき、ありがとうございます。 –
例Github repoが追加されました。 –