독립 실행 형 라이브러리로 작동하는 축소 된 파일에서 RequireJS를 통해 React + ReactDOM을 사용하려고합니다.축소 된 파일에서 RequireJS와 함께 React-dom 사용
내가 React (축소 된 파일에 번들로 제공)를 사용할 수있는 시점에 도착했지만 ReactDOM을 사용하려고 할 때 내가 발견 한 확실한 원인은 "require-dom "require는 축소 된 파일에서 코드를로드하는 대신"react-dom "파일을 가져 오려고합니다. (실제로 반응 -dom을 포함).
사실 나는 모든 요구 사항 파일을 프리 컴파일하기 위해 엉터리를 사용하고 있습니다. 다음과 같이 나는 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);
});
,691,363 (210)
위의 코드를 실행할 때 내가 수신하고이 오류는 다음과 같다 :
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"(…)
내가 부드럽게 반응-DOM의 모든 부하를 제거합니다.
나는 지금까지 여러 가지 시도를 해왔다. 즉, 심미적 인 반응으로 반작용한다. 반응하는 돔은 글로벌 반동 var를 감지하지만, 그 어느 것도 효과가 없다.
도움을 주시면 감사하겠습니다. 미리 감사드립니다.
업데이트 :Github repo with example code
업데이트 2 : 반응-DOM을 lib 디렉토리에 디버깅 동안 내가 메인 메소드가 호출 전에 실행됩니다 것을 발견 축소 된 스크립트 후 " '(정의 react-dom ') "을 제공하므로 문제는"react-dom "이 정의 된 코드가 실행될 때까지 주 스크립트를 대기 상태로 만드는 방법으로 문제가 풀립니다.
GitHub를 통해 최소한의 예를 공유 한 것으로 생각하세요? – prosti
조언을 주셔서 감사합니다. 최소한의 예를 들어 최대한 빨리 준비하겠습니다. –
예 Github 저장소가 추가되었습니다. –