반응형
'NodeModule'.ts(2339) 유형에 'hot' 속성이 없습니다.
구입한 리액션템플릿에 다음 행이 있는데, 그 용도가 무엇인지 잘 모르겠습니다.템플릿은 JS에 있고 Typescript로 변경하고 싶습니다.
템플릿에 다음 행이 있습니다.
if (module.hot) {
module.hot.accept('./dashApp.js', () => {
const NextApp = require('./dashApp').default;
ReactDOM.render(<NextApp />, document.getElementById('root'));
});
}
단, 로 이름이 변경되었을 경우.TS, 다음의 에러가 표시됩니다.
Property 'hot' does not exist on type 'NodeModule'.ts(2339)
이 코드의 실제 기능은 무엇입니까?쉬운 영어로
이 코드는 Webpack의 Hot Module Replacement Feature(HMR; 핫 모듈 교환 기능)와 관련되어 있습니다. module.hot
다음과 같이 동작합니다.
module.hot.accept(
dependencies, // Either a string or an array of strings
callback // Function to fire when the dependencies are updated
);
따라서 당신이 포함시킨 코드는 다음과 같습니다. *코드명은./dashApp.js
또는 Requirement/Import 트리에서 필요한 모듈/Import 모듈 중 하나가 업데이트되면 React 앱 전체를 다시 렌더링합니다.
그hot
노드 모듈의 속성이 표준이 아니므로 TS 오류가 발생합니다. 필요한 유형 정의를 설치해야 합니다. npm install --save-dev @types/webpack-env
효과가 있을 거야
관련 읽기:
- 핫 모듈 교체 개념: HMR에 관한 고급 웹 팩 문서
- HMR에 관한 Hot Module Replacement API Low-level Webpack 문서(사용방법 및 사용방법 설명)
module.hot.accept
한다 - 유형 'NodeModule'에 'hot' 속성이 없습니다. TS 오류를 해결하는 Github 문제
승인된 답변에 추가하기 위해: 설치 후@types/webpack-env
추가가 필요할 수 있습니다."types": ["webpack-env"]
고객님께tsconfig.json
에compilerOptions
그제서야 효과가 있었다.
그래서 당신의tsconfig.json
다음과 같습니다.
{
"compilerOptions": {
...
"types": ["webpack-env"]
},
...
}
언급URL : https://stackoverflow.com/questions/55263085/property-hot-does-not-exist-on-type-nodemodule-ts2339
반응형
'sourcecode' 카테고리의 다른 글
jquery 응답 유형을 체크하는 방법. (0) | 2023.03.20 |
---|---|
Twitter api 텍스트 필드 값이 잘렸습니다. (0) | 2023.03.20 |
bash 'ls' 출력을 json 배열로 변환합니다. (0) | 2023.03.20 |
AngularJS 1.2에서 HTTP 응답 상태 코드를 얻는 방법 (0) | 2023.03.15 |
Selenium 2 WebDriver에서 Ajax 콜이 완료될 때까지 기다립니다. (0) | 2023.03.15 |