У меня довольно стандартная настройка с бэкэндом узла, который служит SPA в качестве пакета веб-пакета, а также API, обслуживающим это приложение SPA.В бэкэнде используется koa2.
Так что у меня была горячая перезагрузка, которая отлично работала для передней части, но теперь у меня немного больше работы с бэкэндом, и мне нужно ускорить мои поездки туда и обратно.
Мне интересно, каков наилучший подход.Я начал с:
1.Начальная загрузка из веб-пакета
Я использовал веб-пакет, который в то время казался стандартным, и добавил KOA в качестве промежуточного программного обеспечения в конфигурации веб-пакета:
serve: {
add: app => {
require('./src/node/backend')(app)
}
....
Это, однако, не приводит к перезагрузке бэкэнда иэто довольно болезненно, так как мне нужно перезапустить всю команду webpack-serve при смене серверной части.
Итак, я попытался
2 Начальная загрузка из серверной части узла с веб-пакетом в качестве промежуточного программного обеспечения
const Koa = require('koa')
const koaWebpack = require('koa-webpack')
const webpack = require('webpack')
const app = new Koa()
const config = require('../../webpack.dev.js')
const compiler = webpack(config)
koaWebpack({ compiler }).then(middleware => {
require('./backend')(app) // delegate to the common
app.listen(process.env.port)
app.use(middleware)
return app
})
Это прекрасно работает и для внешнего интерфейса, но у меня до сих пор нет перезагрузки бэкэнда, поэтому в основном тот же опыт.
3.Запуск webpack-dev-server и backend как разных процессов.
Это работает нормально, и тогда я могу использовать nodemon
для бэкэнда koa, что достаточно для меня, но затем мне нужно сделать некоторую перестановку портовЯ думаю.
Полагаю, webpack-dev-server / webpack-serve могут выступать в роли прокси-сервера и передавать данные через бэкэнд, если они не попадают ни в один из моих интерфейсов.Но все это кажется утомительным.Я бы предпочел соединить все это вместе на одном и том же порту.
Так есть ли какой-нибудь другой простой способ перезагрузить две сборки, но по-прежнему работать вместе на одном и том же порту…?
Iнашел этот проект https://github.com/vlazh/node-hot-loader,, который может быть интересным, но я действительно чувствовал необходимость спросить раньше, если я пропускаю что-то более очевидное, так как я на самом деле рад перезапустить мой стиль сервера нодмонов ... (это маленький и быстрый)