with-http-2
The server crashes after you load the first page:
$ npm run dev
> [email protected] dev /home/username/next.js/with-http2-app
> node server.js
[ ready ] compiled successfully
[ wait ] compiling ...
Listening on HTTPS port 3000
[ ready ] compiled successfully
[ event ] build page: /
[ wait ] compiling ...
[ ready ] compiled successfully
/home/username/next.js/with-http2-app/node_modules/compression/index.js:84
this._implicitHeader()
^
TypeError: this._implicitHeader is not a function
at Http2ServerResponse.write (/home/username/next.js/with-http2-app/node_modules/compression/index.js:84:14)
at ReadStream.ondata (_stream_readable.js:705:22)
at ReadStream.emit (events.js:193:13)
at addChunk (_stream_readable.js:295:12)
at readableAddChunk (_stream_readable.js:276:11)
at ReadStream.Readable.push (_stream_readable.js:231:10)
at fs.read (internal/fs/streams.js:183:12)
at FSReqCallback.wrapper [as oncomplete] (fs.js:478:5)
npx create-next-app --example with-http2 with-http2-appcd with-http2-applocalhost-privkey.pem and localhost-cert.pem.npm run devhttps://localhost:3000/ in a browser and ignore the warning about self-signed certs.The page should load and the process keep running.
OS: Ubuntu 18.04.3 LTS.
Node: I reproduced this on both v11.15.0 and v8.16.1.
Next.js cloned from master (commit 5422ee04bec6f2a582b3ce2f15b9edc30e755e13)
Probably related to https://github.com/expressjs/compression/pull/128
Disabling compression in the config, per the docs:
const app = next({
dev,
conf: {
compression: false,
}
})
did not fix the problem. I'm a bit suspicious that the docs are out of date too, because the typescript types don't mention this option... but that's an issue for another ticket.
ugh... I just found https://github.com/zeit/next.js/pull/8066
Looks like the docs have a bug. The setting is compress, not compression. And setting that to false _does_ fix this problem. So probably not a problem specific to this example at all.
Closing in lieu of https://github.com/zeit/next.js/issues/8408
Most helpful comment
ugh... I just found https://github.com/zeit/next.js/pull/8066
Looks like the docs have a bug. The setting is
compress, notcompression. And setting that tofalse_does_ fix this problem. So probably not a problem specific to this example at all.