Что самый разумный способ применить webpack к полноэкранному приложению node?

Я изучал веб-пакет уже пару недель, и я видел много примеров настроек на лицевой панели и, возможно, просто эту настройку для бэкэнд.

Я пытаюсь настроить приложение-ответ с помощью node back-end (например, express, koa, hapi и т.д.), где мне понадобится хотя бы один шаг транспиляции для back-end (например, babel, coffeescript, и т.д.), и я думаю, было бы неплохо использовать webpack там для согласованности и добавления другого механизма сборки в микс (например, gulp, grunt и т.д.).

было бы замечательно, если бы я мог внести изменения в бэкэнд и перезагрузить сервер автоматически (стиль просмотра).

Мне интересно, если лучший способ сделать это состоит в том, чтобы в основном иметь две разные настройки проекта с их собственными файлами package.json и webpack.config. возможно, вставьте папку back-end в папку server в папке проекта верхнего уровня и используйте одну или несколько директив script в файле top.json верхнего уровня для управления двумя.

Я думаю, мне, возможно, придется проксировать один сервер другому, чтобы избежать проблем с CORS.

ищет какие-либо рекомендации от тех, кто тестировал больше, чем я для достойной настройки.

С уважением, Тони.

Ответ 1

Самый простой способ - разделить это на две задачи: шаг сборки, который выводится в папку (например, "сервер" ), а затем просматривать выходную папку для изменений и перезапуска задачи сервера.

1. Задача сборки

Это может быть в том же webpack.config, что и код построения клиента - вы можете экспортировать массив, и webpack будет смотреть все. Пример webpack.config.js(верхняя половина для сервера)

module.exports = [
{
  name: 'server code, output to ./server',
  entry: './index.js',
  output: {
    filename: './server/index.js'
  },
  target: 'node'
},
{
  name: 'client side, output to ./public',
  entry: './app.js',
  output: {
    filename: './public/app.js'
  }
}
];

Шаг 2.Watch

Для шага просмотра nodemon проверьте изменения и перезапустите. В противном случае вы можете добавить задачу на свой сервер server.js вручную, используя что-то вроде fs.watch или node-watch.