lukeed / sirv

An optimized middleware & CLI application for serving static files~!
MIT License
1.07k stars 58 forks source link

Add option to disable call to `clear` #58

Closed insidewhy closed 4 years ago

insidewhy commented 4 years ago

I run sirv with other processes via concurrently.

When sirv calls clear it scrolls the output of the other processes off the top of the screen.

insidewhy commented 4 years ago

I can sort this out easily, just opening this issue to see if there's interest. Hope you can see the positive side of this suggestion!

lukeed commented 4 years ago

Hey there,

What is your current workaround, and how is this causing a problem? The scroll history is preserved – it's just adjusting the viewport.

insidewhy commented 4 years ago

@lukeed Since I'm using sirv with concurrently it's annoying that the output of all my other processes gets hidden every time sirv restarts. I have to keep scrolling which is just annoying and unnecessary. I could pass the output of sirv through sed I guess, to filter out the control code.

lukeed commented 4 years ago

I forgot to mention last time: passing --quiet will prevent the scroll clear. Is that sufficient for you?

Since you're restarting a server, presumably you don't need to see the start-up banner again & again. And if you have a process watcher anyway, you're already getting start/stop signals in your process-manager's logs.

My hesitation is that it feels very very silly to add a flag just to stop clearing; especially when this use case generally prefers hiding all other console noise too (aka, quiet).

insidewhy commented 4 years ago

I guess that's better, I don't really need the access logs. It might be nice to have a --no-header for people that do but ah well.

lukeed commented 4 years ago

Cool. I hear where you're coming from, but my recommendation for all production servers is to run with --quiet – this is especially true in your case. There's significant performance advantages in doing so.

The documentation will start including this recommendation, too

insidewhy commented 4 years ago

This problem is happening in development mode rather than production mode for me, where the server logs could possibly be useful, but I can live without them for now.

itsMapleLeaf commented 4 years ago

I'm fine with using --quiet in production, but the logs and the printed URLs are really helpful to have in dev, and as previously stated, clearing the screen ends up removing previous logs from other concurrent processes. Can we re-open this?

lukeed commented 4 years ago

Starting with sirv-cli@1.0.3 you can pass the --no-clear flag to prevent the clear() call from happening.

No other variants will work and it's purposefully unlisted. These are both intentional :)

OJFord commented 4 years ago

IMO this is a very surprising default, goes completely against expectation (I've never known anything else do this) what's the reason for it, just to clear those few 'header' lines? That's not worth it to me to also clearing everything else previously on screen, I find it very jarring.

lukeed commented 4 years ago

There are a number of things that do this, especially file servers. I much prefer this, in this case. And now it's easy to disable.

lukeed commented 4 years ago

Somewhat related: You can now hide only the logs (keeping the "application is running" text) via the --no-logs flag starting with sirv-cli@1.0.8