현재 npm 레지스트리에 개별적으로 저장할 수 있도록 모 놀리 식 React 프로젝트에서 모듈을 추출하는 중입니다. 그러나이를 올바르게 내보내고 가져올 수 없습니다.React 구성 요소를 요구할 수 없습니다.
const Component = require("./component.js");
및 모든 번들 웹팩을 사용 : 압축을 해제하기 전에, 내가 사용하고 있었다. 그것은 잘 작동했다. 그런 다음 구성 요소를 별도의 프로젝트로 옮겼습니다.이 프로젝트는 webpack에 번들되었습니다. 그러나 npm 의존성으로 작동하지는 않습니다. 다음 구성 요소에 대한 기본 코드입니다 :
이// Some require statements
...
var Component = React.createClass({...});
module.exports = Component;
빌드 프로세스가/bundle.js를 구축 할 수있는 번들로 출력하고, package.json은 다음과 같습니다
{
"name": "component",
"version": "0.0.2",
"description": "...",
"main": "build/bundle.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build-dev": "webpack",
"build-min": "NODE_ENV=production webpack && uglifyjs ./build/bundle.js -c -m -o ./build/bundle.min.js --source-map ./build/bundle.min.js.map",
"prepublish": "npm run build-min"
},
"publishConfig": {
"registry": "registry"
},
"author": "esaron",
"license": "UNLICENSED",
"dependencies": {
...
},
"devDependencies": {
...
}
}
그리고 나는 그것을 가져 해요 로 :
const Component = require("component");
내가 페이지를로드 할 때, I 참조 콘솔에서 다음과 같은 오류 :
bundle.js : 1299 Uncaught Invariant Violation : 요소 유형이 올바르지 않습니다. 문자열 (내장 구성 요소의 경우) 또는 클래스/함수 (복합 구성 요소의 경우)가 있어야하지만 got : object.
exports
의 렌더링 방법을 확인하십시오.
때 디버깅, 과연, 요구하는 전화는 내가 직접 bundle.js 필요한 경우 내가 같은 결과를 얻을 나에게
구성 요소 = 객체 {}
을주고있다 프로젝트에 복사 한 후, 빌드를 설정하고 올바른 방법으로 게시하지 않아야하고, 잠시 동안 검색 한 후, 내가 잘못하고있는 것을 찾을 수 없었던 것처럼 느껴집니다.
전혀 생각하지 않았습니다. 감사! – Esaron