eleventy-dev-server icon indicating copy to clipboard operation
eleventy-dev-server copied to clipboard

server breaks with an HTML file with no line break at the end

Open gusborg88 opened this issue 1 year ago • 1 comments

Here's the stack trace with my name censored:

[11ty] Cannot read properties of undefined (reading 'length') (via TypeError)
[11ty]
[11ty] Original error stack trace: TypeError: Cannot read properties of undefined (reading 'length')
[11ty]     at SendStream.hasTrailingSlash (C:\Users\me\SavedGames\FNF-Hypertext-Engine\node_modules\send\index.js:302:30)
[11ty]     at SendStream.pipe (C:\Users\me\SavedGames\FNF-Hypertext-Engine\node_modules\send\index.js:585:34)
[11ty]     at EleventyDevServer.eleventyProjectMiddleware (C:\Users\me\SavedGames\FNF-Hypertext-Engine\node_modules\@11ty\eleventy-dev-server\server.js:543:44)
[11ty]     at EleventyDevServer.eleventyDevServerMiddleware (C:\Users\me\SavedGames\FNF-Hypertext-Engine\node_modules\@11ty\eleventy-dev-server\server.js:510:5)
[11ty]     at EleventyDevServer.onRequestHandler (C:\Users\me\SavedGames\FNF-Hypertext-Engine\node_modules\@11ty\eleventy-dev-server\server.js:633:11)
[11ty]     at Server.emit (node:events:518:28)
[11ty]     at parserOnIncoming (node:_http_server:1150:12)
[11ty]     at HTTPParser.parserOnHeadersComplete (node:_http_common:117:17)

The issue was with a file without a line break at the end, I'm on windows so it has carriage returns too. Sometimes when I removed it, it stopped working, but it always worked with it in. Here's the HTML file (i was just messing around testing things)

---
---
<audio data-music id="freaky-menu" src="assets/music/freakyMenu.mp3"></audio>
<label><input type="checkbox">jefferys endless aethos</label>

gusborg88 avatar Nov 27 '24 03:11 gusborg88

My hunch is that this doesn’t have to do with your HTML file but rather your MP3 file, given the stack trace points here:

https://github.com/11ty/eleventy-dev-server/blob/f82a9b6922576a5d1f34bf7ed037e7abd0a41042/server.js#L542-L545

zachleat avatar Mar 13 '25 13:03 zachleat

I did finally attempt to reproduce this with both a missing (and valid) MP3 file in both Chrome and Safari and wasn’t able to reproduce. I think we’ll need a repro test case to move forward here

zachleat avatar Jul 25 '25 17:07 zachleat