Как добавить webpack-dev-middleware в существующее приложение нода / реакция - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть приложение, которое запускает nodejs и выражает на стороне сервера, а React на стороне клиента.Typescript используется повсеместно.

Код на стороне клиента был создан с помощью create-реагировать-приложение и с тех пор был удален.Этот код находится в /client.

Код на стороне сервера находится в /server.

Каждая из этих папок имеет свои собственные node_modules, package.json, конфигурацию webpack и т. Д.

В настоящее время мне приходится запускать клиентскую часть на порте 3000 при разработке и сервер на порте 5000. Вместо этого я исследую, как заставить его работать, чтобы все работало с порта 5000, включая автоматическую перекомпиляцию для пакета на стороне клиента.Я думаю, что webpack-dev-middleware позволит мне сделать это.Однако у меня возникли проблемы, связанные с относительными путями.

Вот код, который я добавил на свой сервер (/server/src/app.ts):

import * as webpack from 'webpack';
import * as webpackDevMiddleware from 'webpack-dev-middleware';

const webpackConfig = require('../../client/config/webpack.config.dev.js');
const webpackCompiler = webpack(webpackConfig);

this.app.use(webpackDevMiddleware(webpackCompiler, {
  publicPath: webpackConfig.output.publicPath,
  stats: { colors: true }
}));

Файл конфигурации веб-пакета, на который я ссылаюсь, является стандартным, который поставляетсяс созданием-реакцией-приложением.Поскольку этот файл находится в папке / client / config, я получаю сообщения об ошибках разрешения модуля:

ERROR in ../client/config/webpack.config.dev.js
Module not found: Error: Can't resolve './env' in '/client/config'
 @ ../client/config/webpack.config.dev.js 11:29-45
 @ ./src/app.ts
 @ multi ./src/app.ts

ERROR in ../client/config/webpack.config.dev.js
Module not found: Error: Can't resolve './paths' in '/client/config'
 @ ../client/config/webpack.config.dev.js 12:14-32
 @ ./src/app.ts
 @ multi ./src/app.ts

ERROR in ../client/config/webpack.config.dev.js
Module not found: Error: Can't resolve './polyfills' in '/client/config'
 @ ../client/config/webpack.config.dev.js 37:4-34
 @ ./src/app.ts
 @ multi ./src/app.ts

Эта ошибка возникает при объединении пакетов веб-пакетов на стороне сервера.Есть ли способ заставить это работать?

...