我正在尝试在我的nextjs自定义服务器中维护HMR。到目前为止,我已经使用webpackdevmiddleware处理了这种情况。如果可能的话,我会回到HMR,以保持优化的开发流程。
我试图将我的nextApp包装在我的socket.io功能中,如下所示:
const io= require("socket.io")(nextApp)
失败。
这是我的server.js配置:
// express module is a function that can be used to create applications
const app=require("express")();
// create a new server
const server=require("http").Server(app)
// wrap server in socket.io
const io= require("socket.io")(server)
const next= require("next");
// nextjs server
const { createServer } = require('http')
const { parse } = require('url')
const dev=process.env.NODE_ENV !== "production";
const nextApp=next({dev});
const nextHandler= nextApp.getRequestHandler();
const PORT= process.env.PORT || 3400;
nextApp.prepare().then(()=>{
app.get('*', (req, res)=>{
return nextHandler(req, res)
})
server.listen(PORT, ()=> console.log(`listen on ${PORT}...`))
})
// nextApp.prepare().then(() => {
// createServer((req, res) => {
// // Be sure to pass `true` as the second argument to `url.parse`.
// // This tells it to parse the query portion of the URL.
// const parsedUrl = parse(req.url, true)
// // const { pathname, query } = parsedUrl
// nextHandler(req, res, parsedUrl);
// }).listen(PORT, err => {
// if (err) throw err
// console.log('> Ready on '+PORT)
// })
// })
如何处理这种情况? 任何提示都会很棒, 谢谢