How fix webpack error: 'Cannot find module '../src/App' '

Viewed 332

I have create-react project with TypeScript and I add server for SSR. When starting the server, I get the error: "Cannot find module '../src/App'"); This is my file server.tsx

import React from 'react'
import express from 'express'
import ReactDOMServer from 'react-dom/server'

import path from 'path'
import fs from 'fs'

import App from '../src/App';

const PORT = process.env.PORT || 3000;
const app = express();

app.get('/', (req, res) => {
  const app = ReactDOMServer.renderToString(<App />);
  const indexFile = path.resolve('./public/index.html');
  fs.readFile(indexFile, 'utf8', (error, data) => {
    if (error) {
      console.error('Something went wrong:', error);
      return res.status(500).send('Oops, something went wrong');
    }
    return res.send(
      data.replace(`<div id="root"></div>`, `<div id="root">${app}</div>`)
    );
  })
})
app.use(express.static('./public'));

app.listen(PORT, () => {
  console.log(`server start on port: ${PORT}`);
});

This is webpack.server.config

const path = require('path');
const nodeExternals = require('webpack-node-externals');

module.exports = {
  entry: './server/index.tsx',
  target: 'node',
  externals: [nodeExternals()],
  output: {
    path: path.resolve('server-build'),
    filename: 'index.js'
  },
  resolve: {
    extensions: ['js', 'jsx', "ts", "tsx", "json"],
  },
  module: {
    rules: [
      {
        test: /\.(js|jsx|tsx|ts)$/,
        loader: "babel-loader",
        exclude: /node_modules/
      }
    ]
  }
};

Why I get this error?

0 Answers
Related