画面が真っ白に
index.tsx
のファイルで以下のように行なっている
import React from "react";
import ReactDOM from "react-dom";
ReactDOM.render(
<React.StrictMode>
<h1>OK</h1>
</React.StrictMode>,
document.getElementById("root") as HTMLElement
);
原因
index.tsx
とは別に、何もしていない空のindex.ts
があったから
index.tsx
の中身のReactDOM.render
を表示したいのに、index.ts
が優先されてしまった。
その結果表示が真っ白に
解決策
webpackのbuild時、TSモジュールがresolveできない
解決策
webpack.config.ts
に以下を追記
module.exports = {
:
:
resolve: {
extensions: ['.tsx', '.ts']
},
};
こうすることでこれらの拡張子を順番に解決しようとする。複数のファイルが同じ名前を共有しているが拡張子が異なる場合、webpack は配列で最初にリストされた拡張子のものを解決し、残りはスキップする。
参考
https://webpack.js.org/configuration/resolve/#resolveextensions
https://stackoverflow.com/questions/43595555/webpack-cant-resolve-typescript-modules