reactjs - Problem med att importera en TSX-fil till en JSX-fil


Jag försöker sätta upp en grundläggande SSR React-app, med TypeScript för frontend och JS för servern.

Huvud-App-komponenten är en .tsx-fil.

Men jag stöter på följande fel:

Fel: Kan inte hitta modulen '../src/App' vid Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)

I min renderSSR.js-fil gör jag:

importera App från "../src/App";

(detta borde importera ../src/App.tsx)

Om jag ändrar serversidan till att vara alla .ts-filer och använder ts-node fungerar allt. Men jag vill inte göra detta.

Några relevanta delar av min webpack-fil:

config.resolve = {
    extensions: [".tsx", ".ts", ".js", ".jsx"]
  };

config.module = {
     rules: [
      // Babel
      {
        test: /\.(js|jsx)$/,
        include: resolvePath("../src"),
        loader: "babel-loader",
        options: {
          cacheDirectory: IS_DEV,
          compact: IS_PROD
        }
      },
      // TS
      {
        test: /\.ts(x?)$/,
        loader: "ts-loader",
        exclude: /node_modules/
      },

Uppdatering: Jag kan komma förbi detta importproblem genom att ändra import-satsen till:

importera App från "../src/App.tsx";

Detta resulterar dock i följande fel i den nyimporterade App.tsx-filen:

{ importera * som React från "react";
^SyntaxError: Oväntat tecken *

I TypeScript är det så här du importerar React.