Make 'npm install --loglevel warn' Output Quieter - #4335

Closed
DabeDotCom wants to merge 1 commit into
npm:latestfrom
DabeDotCom:fix/quieter-reify-output
Closed

Make 'npm install --loglevel warn' Output Quieter#4335
DabeDotCom wants to merge 1 commit into
npm:latestfrom
DabeDotCom:fix/quieter-reify-output

Conversation

@DabeDotCom

Copy link
Copy Markdown

What / Why

I know this is kind of trivial, but I was trying to turn off the up to date in 420ms and 14 packages are looking for funding-type messages in my CI/CD pipeline, and was surprised/disappointed to discover that npm install --loglevel error wasn't good enough.

Having to reach for --silent seems a little too heavy-handed, IMHO... "changed", "audit", and "funding" messages aren't errors, per se — or even warnings, for that matter — they don't alert me to imminent breakage — and --silent is a foot-gun waiting to happen; I'm infinitely more likely to miss something important. But I understand wanting to keep them in the default output.

Describe the request in detail. What it does and why it's being changed.

This PR simply makes it so --loglevel warn is sufficient to turn them off, without impacting other, actualnpm install errors...

Instead of:

if (log.levels[log.level] > log.levels.error)

it simply does:

if (log.levels[log.level] >= log.levels.warn)

[Note: That also meant setting the fixture from warn to notice in test/lib/utils/reify-output.js:beforeEach]

References

Related to #3311

`npm install --silent` seems *too* heavy-handed; changed, audit, and
funding messages aren't errors -- or even warnings, for that matter.
This makes it so `--loglevel warn` turns them off, but still allows
other errors to be displayed.
@DabeDotCom
DabeDotCom requested a review from a team as a code ownerJanuary 27, 2022 01:10
@ruyadornoruyadorno added Needs Discussion is pending a discussion Release 8.x work is associated with a specific npm 8 release labels Jan 27, 2022
@ruyadorno

Copy link
Copy Markdown
Contributor

@DabeDotCom if you want to skip audit and disable the fund notifications on your install you can run npm install --no-audit --no-fund or add to your .npmrc file:

audit=false
fund=false

@DabeDotCom

Copy link
Copy Markdown
Author

@DabeDotCom if you want to skip audit and disable the fund notifications on your install you can run npm install --no-audit --no-fund or add to your .npmrc file

Thanks @ruyadorno!

I considered that, but I still couldn't figure out how to get rid of the up to date in 420ms "error"

@ruyadornoruyadorno added the Agenda will be discussed at the Open RFC call label Jan 27, 2022
@darcyclarkedarcyclarke added Needs Review and removed Agenda will be discussed at the Open RFC call Needs Discussion is pending a discussion labels Feb 3, 2022
@lukekarrys

Copy link
Copy Markdown
Contributor

Thanks for this PR @DabeDotCom (with tests too!). I agree with your problem statement that it's important to be able to control what npm writes to the terminal and that --silent is too heavy handed for disabling this particular output.

However I don't think this is the right lever to pull to get this behavior. The cli writes two things to the terminal: logs and output. It tries use stdout for output and stderr for logs (there a few inconsistencies here that I hope to correct, ref: #4724, #2740).

loglevel (as the name implies) controls what gets written to the logs and therefore stderr. But loglevel=silent is kind of magical in that it stops everything from bring written, stdout included. So I'm hesitant to make this change since it would make loglevel=error magical in the same way.

The good news is that since these write streams are already separated you can redirect stdout only. You can still combine that with the flags @ruyadorno suggested to skip audit and fund altogether too.

# hide all stdout output
npm install --loglevel=error > /dev/null
# or write to a file
npm install --loglevel=error > npm-output.log

I think this is the best solution for this particular problem. The future of npm logs/output is a current topic of discussion, so if you have more thoughts you can comment on the linked RFC or open a new one. Thanks!

@DabeDotCom

Copy link
Copy Markdown
Author

The cli writes two things to the terminal: logs and output. It tries to use stdout for output and stderr for logs

Hi @lukekarrys,

Thanks for taking the time to review my PR — and thanks also for your much-wiser-than-mine interpretation, understanding, and explanation of what I was trying to accomplish! :-D

They say "Hindsight is 20/20" and after reading your message, I just now realized that all this time, I'd been >&-ing stdout/stderr together into one stream! «embarrased»

In all honesty, though, fine tuning what messages are debug vs. verbose vs. info vs. quiet, etc., and figuring out how to customize exactly which ones you want to include and/or exclude at any given stage has got to be at LEAST as hard as Cache Invalidation and Naming Things... I respect the amount of rigor and thought you all have put into it. «hats off»

Cheers! 👍

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 8.xwork is associated with a specific npm 8 release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@DabeDotCom@ruyadorno@lukekarrys@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Make 'npm install --loglevel warn' Output Quieter - #4335

Closed
DabeDotCom wants to merge 1 commit into
npm:latestfrom
DabeDotCom:fix/quieter-reify-output
Closed

Make 'npm install --loglevel warn' Output Quieter#4335
DabeDotCom wants to merge 1 commit into
npm:latestfrom
DabeDotCom:fix/quieter-reify-output

Conversation

@DabeDotCom

Copy link
Copy Markdown

What / Why

I know this is kind of trivial, but I was trying to turn off the up to date in 420ms and 14 packages are looking for funding-type messages in my CI/CD pipeline, and was surprised/disappointed to discover that npm install --loglevel error wasn't good enough.

Having to reach for --silent seems a little too heavy-handed, IMHO... "changed", "audit", and "funding" messages aren't errors, per se — or even warnings, for that matter — they don't alert me to imminent breakage — and --silent is a foot-gun waiting to happen; I'm infinitely more likely to miss something important. But I understand wanting to keep them in the default output.

Describe the request in detail. What it does and why it's being changed.

This PR simply makes it so --loglevel warn is sufficient to turn them off, without impacting other, actualnpm install errors...

Instead of:

if (log.levels[log.level] > log.levels.error)

it simply does:

if (log.levels[log.level] >= log.levels.warn)

[Note: That also meant setting the fixture from warn to notice in test/lib/utils/reify-output.js:beforeEach]

References

Related to #3311

`npm install --silent` seems *too* heavy-handed; changed, audit, and
funding messages aren't errors -- or even warnings, for that matter.
This makes it so `--loglevel warn` turns them off, but still allows
other errors to be displayed.
@DabeDotCom
DabeDotCom requested a review from a team as a code ownerJanuary 27, 2022 01:10
@ruyadornoruyadorno added Needs Discussion is pending a discussion Release 8.x work is associated with a specific npm 8 release labels Jan 27, 2022
@ruyadorno

Copy link
Copy Markdown
Contributor

@DabeDotCom if you want to skip audit and disable the fund notifications on your install you can run npm install --no-audit --no-fund or add to your .npmrc file:

audit=false
fund=false

@DabeDotCom

Copy link
Copy Markdown
Author

@DabeDotCom if you want to skip audit and disable the fund notifications on your install you can run npm install --no-audit --no-fund or add to your .npmrc file

Thanks @ruyadorno!

I considered that, but I still couldn't figure out how to get rid of the up to date in 420ms "error"

@ruyadornoruyadorno added the Agenda will be discussed at the Open RFC call label Jan 27, 2022
@darcyclarkedarcyclarke added Needs Review and removed Agenda will be discussed at the Open RFC call Needs Discussion is pending a discussion labels Feb 3, 2022
@lukekarrys

Copy link
Copy Markdown
Contributor

Thanks for this PR @DabeDotCom (with tests too!). I agree with your problem statement that it's important to be able to control what npm writes to the terminal and that --silent is too heavy handed for disabling this particular output.

However I don't think this is the right lever to pull to get this behavior. The cli writes two things to the terminal: logs and output. It tries use stdout for output and stderr for logs (there a few inconsistencies here that I hope to correct, ref: #4724, #2740).

loglevel (as the name implies) controls what gets written to the logs and therefore stderr. But loglevel=silent is kind of magical in that it stops everything from bring written, stdout included. So I'm hesitant to make this change since it would make loglevel=error magical in the same way.

The good news is that since these write streams are already separated you can redirect stdout only. You can still combine that with the flags @ruyadorno suggested to skip audit and fund altogether too.

# hide all stdout output
npm install --loglevel=error > /dev/null
# or write to a file
npm install --loglevel=error > npm-output.log

I think this is the best solution for this particular problem. The future of npm logs/output is a current topic of discussion, so if you have more thoughts you can comment on the linked RFC or open a new one. Thanks!

@DabeDotCom

Copy link
Copy Markdown
Author

The cli writes two things to the terminal: logs and output. It tries to use stdout for output and stderr for logs

Hi @lukekarrys,

Thanks for taking the time to review my PR — and thanks also for your much-wiser-than-mine interpretation, understanding, and explanation of what I was trying to accomplish! :-D

They say "Hindsight is 20/20" and after reading your message, I just now realized that all this time, I'd been >&-ing stdout/stderr together into one stream! «embarrased»

In all honesty, though, fine tuning what messages are debug vs. verbose vs. info vs. quiet, etc., and figuring out how to customize exactly which ones you want to include and/or exclude at any given stage has got to be at LEAST as hard as Cache Invalidation and Naming Things... I respect the amount of rigor and thought you all have put into it. «hats off»

Cheers! 👍

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 8.xwork is associated with a specific npm 8 release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@DabeDotCom@ruyadorno@lukekarrys@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Make 'npm install --loglevel warn' Output Quieter - #4335

Closed
DabeDotCom wants to merge 1 commit into
npm:latestfrom
DabeDotCom:fix/quieter-reify-output
Closed

Make 'npm install --loglevel warn' Output Quieter#4335
DabeDotCom wants to merge 1 commit into
npm:latestfrom
DabeDotCom:fix/quieter-reify-output

Conversation

@DabeDotCom

Copy link
Copy Markdown

What / Why

I know this is kind of trivial, but I was trying to turn off the up to date in 420ms and 14 packages are looking for funding-type messages in my CI/CD pipeline, and was surprised/disappointed to discover that npm install --loglevel error wasn't good enough.

Having to reach for --silent seems a little too heavy-handed, IMHO... "changed", "audit", and "funding" messages aren't errors, per se — or even warnings, for that matter — they don't alert me to imminent breakage — and --silent is a foot-gun waiting to happen; I'm infinitely more likely to miss something important. But I understand wanting to keep them in the default output.

Describe the request in detail. What it does and why it's being changed.

This PR simply makes it so --loglevel warn is sufficient to turn them off, without impacting other, actualnpm install errors...

Instead of:

if (log.levels[log.level] > log.levels.error)

it simply does:

if (log.levels[log.level] >= log.levels.warn)

[Note: That also meant setting the fixture from warn to notice in test/lib/utils/reify-output.js:beforeEach]

References

Related to #3311

`npm install --silent` seems *too* heavy-handed; changed, audit, and
funding messages aren't errors -- or even warnings, for that matter.
This makes it so `--loglevel warn` turns them off, but still allows
other errors to be displayed.
@DabeDotCom
DabeDotCom requested a review from a team as a code ownerJanuary 27, 2022 01:10
@ruyadornoruyadorno added Needs Discussion is pending a discussion Release 8.x work is associated with a specific npm 8 release labels Jan 27, 2022
@ruyadorno

Copy link
Copy Markdown
Contributor

@DabeDotCom if you want to skip audit and disable the fund notifications on your install you can run npm install --no-audit --no-fund or add to your .npmrc file:

audit=false
fund=false

@DabeDotCom

Copy link
Copy Markdown
Author

@DabeDotCom if you want to skip audit and disable the fund notifications on your install you can run npm install --no-audit --no-fund or add to your .npmrc file

Thanks @ruyadorno!

I considered that, but I still couldn't figure out how to get rid of the up to date in 420ms "error"

@ruyadornoruyadorno added the Agenda will be discussed at the Open RFC call label Jan 27, 2022
@darcyclarkedarcyclarke added Needs Review and removed Agenda will be discussed at the Open RFC call Needs Discussion is pending a discussion labels Feb 3, 2022
@lukekarrys

Copy link
Copy Markdown
Contributor

Thanks for this PR @DabeDotCom (with tests too!). I agree with your problem statement that it's important to be able to control what npm writes to the terminal and that --silent is too heavy handed for disabling this particular output.

However I don't think this is the right lever to pull to get this behavior. The cli writes two things to the terminal: logs and output. It tries use stdout for output and stderr for logs (there a few inconsistencies here that I hope to correct, ref: #4724, #2740).

loglevel (as the name implies) controls what gets written to the logs and therefore stderr. But loglevel=silent is kind of magical in that it stops everything from bring written, stdout included. So I'm hesitant to make this change since it would make loglevel=error magical in the same way.

The good news is that since these write streams are already separated you can redirect stdout only. You can still combine that with the flags @ruyadorno suggested to skip audit and fund altogether too.

# hide all stdout output
npm install --loglevel=error > /dev/null
# or write to a file
npm install --loglevel=error > npm-output.log

I think this is the best solution for this particular problem. The future of npm logs/output is a current topic of discussion, so if you have more thoughts you can comment on the linked RFC or open a new one. Thanks!

@DabeDotCom

Copy link
Copy Markdown
Author

The cli writes two things to the terminal: logs and output. It tries to use stdout for output and stderr for logs

Hi @lukekarrys,

Thanks for taking the time to review my PR — and thanks also for your much-wiser-than-mine interpretation, understanding, and explanation of what I was trying to accomplish! :-D

They say "Hindsight is 20/20" and after reading your message, I just now realized that all this time, I'd been >&-ing stdout/stderr together into one stream! «embarrased»

In all honesty, though, fine tuning what messages are debug vs. verbose vs. info vs. quiet, etc., and figuring out how to customize exactly which ones you want to include and/or exclude at any given stage has got to be at LEAST as hard as Cache Invalidation and Naming Things... I respect the amount of rigor and thought you all have put into it. «hats off»

Cheers! 👍

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 8.xwork is associated with a specific npm 8 release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@DabeDotCom@ruyadorno@lukekarrys@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Make 'npm install --loglevel warn' Output Quieter - #4335

Closed
DabeDotCom wants to merge 1 commit into
npm:latestfrom
DabeDotCom:fix/quieter-reify-output
Closed

Make 'npm install --loglevel warn' Output Quieter#4335
DabeDotCom wants to merge 1 commit into
npm:latestfrom
DabeDotCom:fix/quieter-reify-output

Conversation

@DabeDotCom

Copy link
Copy Markdown

What / Why

I know this is kind of trivial, but I was trying to turn off the up to date in 420ms and 14 packages are looking for funding-type messages in my CI/CD pipeline, and was surprised/disappointed to discover that npm install --loglevel error wasn't good enough.

Having to reach for --silent seems a little too heavy-handed, IMHO... "changed", "audit", and "funding" messages aren't errors, per se — or even warnings, for that matter — they don't alert me to imminent breakage — and --silent is a foot-gun waiting to happen; I'm infinitely more likely to miss something important. But I understand wanting to keep them in the default output.

Describe the request in detail. What it does and why it's being changed.

This PR simply makes it so --loglevel warn is sufficient to turn them off, without impacting other, actualnpm install errors...

Instead of:

if (log.levels[log.level] > log.levels.error)

it simply does:

if (log.levels[log.level] >= log.levels.warn)

[Note: That also meant setting the fixture from warn to notice in test/lib/utils/reify-output.js:beforeEach]

References

Related to #3311

`npm install --silent` seems *too* heavy-handed; changed, audit, and
funding messages aren't errors -- or even warnings, for that matter.
This makes it so `--loglevel warn` turns them off, but still allows
other errors to be displayed.
@DabeDotCom
DabeDotCom requested a review from a team as a code ownerJanuary 27, 2022 01:10
@ruyadornoruyadorno added Needs Discussion is pending a discussion Release 8.x work is associated with a specific npm 8 release labels Jan 27, 2022
@ruyadorno

Copy link
Copy Markdown
Contributor

@DabeDotCom if you want to skip audit and disable the fund notifications on your install you can run npm install --no-audit --no-fund or add to your .npmrc file:

audit=false
fund=false

@DabeDotCom

Copy link
Copy Markdown
Author

@DabeDotCom if you want to skip audit and disable the fund notifications on your install you can run npm install --no-audit --no-fund or add to your .npmrc file

Thanks @ruyadorno!

I considered that, but I still couldn't figure out how to get rid of the up to date in 420ms "error"

@ruyadornoruyadorno added the Agenda will be discussed at the Open RFC call label Jan 27, 2022
@darcyclarkedarcyclarke added Needs Review and removed Agenda will be discussed at the Open RFC call Needs Discussion is pending a discussion labels Feb 3, 2022
@lukekarrys

Copy link
Copy Markdown
Contributor

Thanks for this PR @DabeDotCom (with tests too!). I agree with your problem statement that it's important to be able to control what npm writes to the terminal and that --silent is too heavy handed for disabling this particular output.

However I don't think this is the right lever to pull to get this behavior. The cli writes two things to the terminal: logs and output. It tries use stdout for output and stderr for logs (there a few inconsistencies here that I hope to correct, ref: #4724, #2740).

loglevel (as the name implies) controls what gets written to the logs and therefore stderr. But loglevel=silent is kind of magical in that it stops everything from bring written, stdout included. So I'm hesitant to make this change since it would make loglevel=error magical in the same way.

The good news is that since these write streams are already separated you can redirect stdout only. You can still combine that with the flags @ruyadorno suggested to skip audit and fund altogether too.

# hide all stdout output
npm install --loglevel=error > /dev/null
# or write to a file
npm install --loglevel=error > npm-output.log

I think this is the best solution for this particular problem. The future of npm logs/output is a current topic of discussion, so if you have more thoughts you can comment on the linked RFC or open a new one. Thanks!

@DabeDotCom

Copy link
Copy Markdown
Author

The cli writes two things to the terminal: logs and output. It tries to use stdout for output and stderr for logs

Hi @lukekarrys,

Thanks for taking the time to review my PR — and thanks also for your much-wiser-than-mine interpretation, understanding, and explanation of what I was trying to accomplish! :-D

They say "Hindsight is 20/20" and after reading your message, I just now realized that all this time, I'd been >&-ing stdout/stderr together into one stream! «embarrased»

In all honesty, though, fine tuning what messages are debug vs. verbose vs. info vs. quiet, etc., and figuring out how to customize exactly which ones you want to include and/or exclude at any given stage has got to be at LEAST as hard as Cache Invalidation and Naming Things... I respect the amount of rigor and thought you all have put into it. «hats off»

Cheers! 👍

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 8.xwork is associated with a specific npm 8 release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@DabeDotCom@ruyadorno@lukekarrys@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Make 'npm install --loglevel warn' Output Quieter - #4335

Closed
DabeDotCom wants to merge 1 commit into
npm:latestfrom
DabeDotCom:fix/quieter-reify-output
Closed

Make 'npm install --loglevel warn' Output Quieter#4335
DabeDotCom wants to merge 1 commit into
npm:latestfrom
DabeDotCom:fix/quieter-reify-output

Conversation

@DabeDotCom

Copy link
Copy Markdown

What / Why

I know this is kind of trivial, but I was trying to turn off the up to date in 420ms and 14 packages are looking for funding-type messages in my CI/CD pipeline, and was surprised/disappointed to discover that npm install --loglevel error wasn't good enough.

Having to reach for --silent seems a little too heavy-handed, IMHO... "changed", "audit", and "funding" messages aren't errors, per se — or even warnings, for that matter — they don't alert me to imminent breakage — and --silent is a foot-gun waiting to happen; I'm infinitely more likely to miss something important. But I understand wanting to keep them in the default output.

Describe the request in detail. What it does and why it's being changed.

This PR simply makes it so --loglevel warn is sufficient to turn them off, without impacting other, actualnpm install errors...

Instead of:

if (log.levels[log.level] > log.levels.error)

it simply does:

if (log.levels[log.level] >= log.levels.warn)

[Note: That also meant setting the fixture from warn to notice in test/lib/utils/reify-output.js:beforeEach]

References

Related to #3311

`npm install --silent` seems *too* heavy-handed; changed, audit, and
funding messages aren't errors -- or even warnings, for that matter.
This makes it so `--loglevel warn` turns them off, but still allows
other errors to be displayed.
@DabeDotCom
DabeDotCom requested a review from a team as a code ownerJanuary 27, 2022 01:10
@ruyadornoruyadorno added Needs Discussion is pending a discussion Release 8.x work is associated with a specific npm 8 release labels Jan 27, 2022
@ruyadorno

Copy link
Copy Markdown
Contributor

@DabeDotCom if you want to skip audit and disable the fund notifications on your install you can run npm install --no-audit --no-fund or add to your .npmrc file:

audit=false
fund=false

@DabeDotCom

Copy link
Copy Markdown
Author

@DabeDotCom if you want to skip audit and disable the fund notifications on your install you can run npm install --no-audit --no-fund or add to your .npmrc file

Thanks @ruyadorno!

I considered that, but I still couldn't figure out how to get rid of the up to date in 420ms "error"

@ruyadornoruyadorno added the Agenda will be discussed at the Open RFC call label Jan 27, 2022
@darcyclarkedarcyclarke added Needs Review and removed Agenda will be discussed at the Open RFC call Needs Discussion is pending a discussion labels Feb 3, 2022
@lukekarrys

Copy link
Copy Markdown
Contributor

Thanks for this PR @DabeDotCom (with tests too!). I agree with your problem statement that it's important to be able to control what npm writes to the terminal and that --silent is too heavy handed for disabling this particular output.

However I don't think this is the right lever to pull to get this behavior. The cli writes two things to the terminal: logs and output. It tries use stdout for output and stderr for logs (there a few inconsistencies here that I hope to correct, ref: #4724, #2740).

loglevel (as the name implies) controls what gets written to the logs and therefore stderr. But loglevel=silent is kind of magical in that it stops everything from bring written, stdout included. So I'm hesitant to make this change since it would make loglevel=error magical in the same way.

The good news is that since these write streams are already separated you can redirect stdout only. You can still combine that with the flags @ruyadorno suggested to skip audit and fund altogether too.

# hide all stdout output
npm install --loglevel=error > /dev/null
# or write to a file
npm install --loglevel=error > npm-output.log

I think this is the best solution for this particular problem. The future of npm logs/output is a current topic of discussion, so if you have more thoughts you can comment on the linked RFC or open a new one. Thanks!

@DabeDotCom

Copy link
Copy Markdown
Author

The cli writes two things to the terminal: logs and output. It tries to use stdout for output and stderr for logs

Hi @lukekarrys,

Thanks for taking the time to review my PR — and thanks also for your much-wiser-than-mine interpretation, understanding, and explanation of what I was trying to accomplish! :-D

They say "Hindsight is 20/20" and after reading your message, I just now realized that all this time, I'd been >&-ing stdout/stderr together into one stream! «embarrased»

In all honesty, though, fine tuning what messages are debug vs. verbose vs. info vs. quiet, etc., and figuring out how to customize exactly which ones you want to include and/or exclude at any given stage has got to be at LEAST as hard as Cache Invalidation and Naming Things... I respect the amount of rigor and thought you all have put into it. «hats off»

Cheers! 👍

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 8.xwork is associated with a specific npm 8 release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@DabeDotCom@ruyadorno@lukekarrys@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Make 'npm install --loglevel warn' Output Quieter - #4335

Closed
DabeDotCom wants to merge 1 commit into
npm:latestfrom
DabeDotCom:fix/quieter-reify-output
Closed

Make 'npm install --loglevel warn' Output Quieter#4335
DabeDotCom wants to merge 1 commit into
npm:latestfrom
DabeDotCom:fix/quieter-reify-output

Conversation

@DabeDotCom

Copy link
Copy Markdown

What / Why

I know this is kind of trivial, but I was trying to turn off the up to date in 420ms and 14 packages are looking for funding-type messages in my CI/CD pipeline, and was surprised/disappointed to discover that npm install --loglevel error wasn't good enough.

Having to reach for --silent seems a little too heavy-handed, IMHO... "changed", "audit", and "funding" messages aren't errors, per se — or even warnings, for that matter — they don't alert me to imminent breakage — and --silent is a foot-gun waiting to happen; I'm infinitely more likely to miss something important. But I understand wanting to keep them in the default output.

Describe the request in detail. What it does and why it's being changed.

This PR simply makes it so --loglevel warn is sufficient to turn them off, without impacting other, actualnpm install errors...

Instead of:

if (log.levels[log.level] > log.levels.error)

it simply does:

if (log.levels[log.level] >= log.levels.warn)

[Note: That also meant setting the fixture from warn to notice in test/lib/utils/reify-output.js:beforeEach]

References

Related to #3311

`npm install --silent` seems *too* heavy-handed; changed, audit, and
funding messages aren't errors -- or even warnings, for that matter.
This makes it so `--loglevel warn` turns them off, but still allows
other errors to be displayed.
@DabeDotCom
DabeDotCom requested a review from a team as a code ownerJanuary 27, 2022 01:10
@ruyadornoruyadorno added Needs Discussion is pending a discussion Release 8.x work is associated with a specific npm 8 release labels Jan 27, 2022
@ruyadorno

Copy link
Copy Markdown
Contributor

@DabeDotCom if you want to skip audit and disable the fund notifications on your install you can run npm install --no-audit --no-fund or add to your .npmrc file:

audit=false
fund=false

@DabeDotCom

Copy link
Copy Markdown
Author

@DabeDotCom if you want to skip audit and disable the fund notifications on your install you can run npm install --no-audit --no-fund or add to your .npmrc file

Thanks @ruyadorno!

I considered that, but I still couldn't figure out how to get rid of the up to date in 420ms "error"

@ruyadornoruyadorno added the Agenda will be discussed at the Open RFC call label Jan 27, 2022
@darcyclarkedarcyclarke added Needs Review and removed Agenda will be discussed at the Open RFC call Needs Discussion is pending a discussion labels Feb 3, 2022
@lukekarrys

Copy link
Copy Markdown
Contributor

Thanks for this PR @DabeDotCom (with tests too!). I agree with your problem statement that it's important to be able to control what npm writes to the terminal and that --silent is too heavy handed for disabling this particular output.

However I don't think this is the right lever to pull to get this behavior. The cli writes two things to the terminal: logs and output. It tries use stdout for output and stderr for logs (there a few inconsistencies here that I hope to correct, ref: #4724, #2740).

loglevel (as the name implies) controls what gets written to the logs and therefore stderr. But loglevel=silent is kind of magical in that it stops everything from bring written, stdout included. So I'm hesitant to make this change since it would make loglevel=error magical in the same way.

The good news is that since these write streams are already separated you can redirect stdout only. You can still combine that with the flags @ruyadorno suggested to skip audit and fund altogether too.

# hide all stdout output
npm install --loglevel=error > /dev/null
# or write to a file
npm install --loglevel=error > npm-output.log

I think this is the best solution for this particular problem. The future of npm logs/output is a current topic of discussion, so if you have more thoughts you can comment on the linked RFC or open a new one. Thanks!

@DabeDotCom

Copy link
Copy Markdown
Author

The cli writes two things to the terminal: logs and output. It tries to use stdout for output and stderr for logs

Hi @lukekarrys,

Thanks for taking the time to review my PR — and thanks also for your much-wiser-than-mine interpretation, understanding, and explanation of what I was trying to accomplish! :-D

They say "Hindsight is 20/20" and after reading your message, I just now realized that all this time, I'd been >&-ing stdout/stderr together into one stream! «embarrased»

In all honesty, though, fine tuning what messages are debug vs. verbose vs. info vs. quiet, etc., and figuring out how to customize exactly which ones you want to include and/or exclude at any given stage has got to be at LEAST as hard as Cache Invalidation and Naming Things... I respect the amount of rigor and thought you all have put into it. «hats off»

Cheers! 👍

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 8.xwork is associated with a specific npm 8 release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@DabeDotCom@ruyadorno@lukekarrys@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Make 'npm install --loglevel warn' Output Quieter - #4335

Closed
DabeDotCom wants to merge 1 commit into
npm:latestfrom
DabeDotCom:fix/quieter-reify-output
Closed

Make 'npm install --loglevel warn' Output Quieter#4335
DabeDotCom wants to merge 1 commit into
npm:latestfrom
DabeDotCom:fix/quieter-reify-output

Conversation

@DabeDotCom

Copy link
Copy Markdown

What / Why

I know this is kind of trivial, but I was trying to turn off the up to date in 420ms and 14 packages are looking for funding-type messages in my CI/CD pipeline, and was surprised/disappointed to discover that npm install --loglevel error wasn't good enough.

Having to reach for --silent seems a little too heavy-handed, IMHO... "changed", "audit", and "funding" messages aren't errors, per se — or even warnings, for that matter — they don't alert me to imminent breakage — and --silent is a foot-gun waiting to happen; I'm infinitely more likely to miss something important. But I understand wanting to keep them in the default output.

Describe the request in detail. What it does and why it's being changed.

This PR simply makes it so --loglevel warn is sufficient to turn them off, without impacting other, actualnpm install errors...

Instead of:

if (log.levels[log.level] > log.levels.error)

it simply does:

if (log.levels[log.level] >= log.levels.warn)

[Note: That also meant setting the fixture from warn to notice in test/lib/utils/reify-output.js:beforeEach]

References

Related to #3311

`npm install --silent` seems *too* heavy-handed; changed, audit, and
funding messages aren't errors -- or even warnings, for that matter.
This makes it so `--loglevel warn` turns them off, but still allows
other errors to be displayed.
@DabeDotCom
DabeDotCom requested a review from a team as a code ownerJanuary 27, 2022 01:10
@ruyadornoruyadorno added Needs Discussion is pending a discussion Release 8.x work is associated with a specific npm 8 release labels Jan 27, 2022
@ruyadorno

Copy link
Copy Markdown
Contributor

@DabeDotCom if you want to skip audit and disable the fund notifications on your install you can run npm install --no-audit --no-fund or add to your .npmrc file:

audit=false
fund=false

@DabeDotCom

Copy link
Copy Markdown
Author

@DabeDotCom if you want to skip audit and disable the fund notifications on your install you can run npm install --no-audit --no-fund or add to your .npmrc file

Thanks @ruyadorno!

I considered that, but I still couldn't figure out how to get rid of the up to date in 420ms "error"

@ruyadornoruyadorno added the Agenda will be discussed at the Open RFC call label Jan 27, 2022
@darcyclarkedarcyclarke added Needs Review and removed Agenda will be discussed at the Open RFC call Needs Discussion is pending a discussion labels Feb 3, 2022
@lukekarrys

Copy link
Copy Markdown
Contributor

Thanks for this PR @DabeDotCom (with tests too!). I agree with your problem statement that it's important to be able to control what npm writes to the terminal and that --silent is too heavy handed for disabling this particular output.

However I don't think this is the right lever to pull to get this behavior. The cli writes two things to the terminal: logs and output. It tries use stdout for output and stderr for logs (there a few inconsistencies here that I hope to correct, ref: #4724, #2740).

loglevel (as the name implies) controls what gets written to the logs and therefore stderr. But loglevel=silent is kind of magical in that it stops everything from bring written, stdout included. So I'm hesitant to make this change since it would make loglevel=error magical in the same way.

The good news is that since these write streams are already separated you can redirect stdout only. You can still combine that with the flags @ruyadorno suggested to skip audit and fund altogether too.

# hide all stdout output
npm install --loglevel=error > /dev/null
# or write to a file
npm install --loglevel=error > npm-output.log

I think this is the best solution for this particular problem. The future of npm logs/output is a current topic of discussion, so if you have more thoughts you can comment on the linked RFC or open a new one. Thanks!

@DabeDotCom

Copy link
Copy Markdown
Author

The cli writes two things to the terminal: logs and output. It tries to use stdout for output and stderr for logs

Hi @lukekarrys,

Thanks for taking the time to review my PR — and thanks also for your much-wiser-than-mine interpretation, understanding, and explanation of what I was trying to accomplish! :-D

They say "Hindsight is 20/20" and after reading your message, I just now realized that all this time, I'd been >&-ing stdout/stderr together into one stream! «embarrased»

In all honesty, though, fine tuning what messages are debug vs. verbose vs. info vs. quiet, etc., and figuring out how to customize exactly which ones you want to include and/or exclude at any given stage has got to be at LEAST as hard as Cache Invalidation and Naming Things... I respect the amount of rigor and thought you all have put into it. «hats off»

Cheers! 👍

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 8.xwork is associated with a specific npm 8 release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@DabeDotCom@ruyadorno@lukekarrys@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Make 'npm install --loglevel warn' Output Quieter - #4335

Closed
DabeDotCom wants to merge 1 commit into
npm:latestfrom
DabeDotCom:fix/quieter-reify-output
Closed

Make 'npm install --loglevel warn' Output Quieter#4335
DabeDotCom wants to merge 1 commit into
npm:latestfrom
DabeDotCom:fix/quieter-reify-output

Conversation

@DabeDotCom

Copy link
Copy Markdown

What / Why

I know this is kind of trivial, but I was trying to turn off the up to date in 420ms and 14 packages are looking for funding-type messages in my CI/CD pipeline, and was surprised/disappointed to discover that npm install --loglevel error wasn't good enough.

Having to reach for --silent seems a little too heavy-handed, IMHO... "changed", "audit", and "funding" messages aren't errors, per se — or even warnings, for that matter — they don't alert me to imminent breakage — and --silent is a foot-gun waiting to happen; I'm infinitely more likely to miss something important. But I understand wanting to keep them in the default output.

Describe the request in detail. What it does and why it's being changed.

This PR simply makes it so --loglevel warn is sufficient to turn them off, without impacting other, actualnpm install errors...

Instead of:

if (log.levels[log.level] > log.levels.error)

it simply does:

if (log.levels[log.level] >= log.levels.warn)

[Note: That also meant setting the fixture from warn to notice in test/lib/utils/reify-output.js:beforeEach]

References

Related to #3311

`npm install --silent` seems *too* heavy-handed; changed, audit, and
funding messages aren't errors -- or even warnings, for that matter.
This makes it so `--loglevel warn` turns them off, but still allows
other errors to be displayed.
@DabeDotCom
DabeDotCom requested a review from a team as a code ownerJanuary 27, 2022 01:10
@ruyadornoruyadorno added Needs Discussion is pending a discussion Release 8.x work is associated with a specific npm 8 release labels Jan 27, 2022
@ruyadorno

Copy link
Copy Markdown
Contributor

@DabeDotCom if you want to skip audit and disable the fund notifications on your install you can run npm install --no-audit --no-fund or add to your .npmrc file:

audit=false
fund=false

@DabeDotCom

Copy link
Copy Markdown
Author

@DabeDotCom if you want to skip audit and disable the fund notifications on your install you can run npm install --no-audit --no-fund or add to your .npmrc file

Thanks @ruyadorno!

I considered that, but I still couldn't figure out how to get rid of the up to date in 420ms "error"

@ruyadornoruyadorno added the Agenda will be discussed at the Open RFC call label Jan 27, 2022
@darcyclarkedarcyclarke added Needs Review and removed Agenda will be discussed at the Open RFC call Needs Discussion is pending a discussion labels Feb 3, 2022
@lukekarrys

Copy link
Copy Markdown
Contributor

Thanks for this PR @DabeDotCom (with tests too!). I agree with your problem statement that it's important to be able to control what npm writes to the terminal and that --silent is too heavy handed for disabling this particular output.

However I don't think this is the right lever to pull to get this behavior. The cli writes two things to the terminal: logs and output. It tries use stdout for output and stderr for logs (there a few inconsistencies here that I hope to correct, ref: #4724, #2740).

loglevel (as the name implies) controls what gets written to the logs and therefore stderr. But loglevel=silent is kind of magical in that it stops everything from bring written, stdout included. So I'm hesitant to make this change since it would make loglevel=error magical in the same way.

The good news is that since these write streams are already separated you can redirect stdout only. You can still combine that with the flags @ruyadorno suggested to skip audit and fund altogether too.

# hide all stdout output
npm install --loglevel=error > /dev/null
# or write to a file
npm install --loglevel=error > npm-output.log

I think this is the best solution for this particular problem. The future of npm logs/output is a current topic of discussion, so if you have more thoughts you can comment on the linked RFC or open a new one. Thanks!

@DabeDotCom

Copy link
Copy Markdown
Author

The cli writes two things to the terminal: logs and output. It tries to use stdout for output and stderr for logs

Hi @lukekarrys,

Thanks for taking the time to review my PR — and thanks also for your much-wiser-than-mine interpretation, understanding, and explanation of what I was trying to accomplish! :-D

They say "Hindsight is 20/20" and after reading your message, I just now realized that all this time, I'd been >&-ing stdout/stderr together into one stream! «embarrased»

In all honesty, though, fine tuning what messages are debug vs. verbose vs. info vs. quiet, etc., and figuring out how to customize exactly which ones you want to include and/or exclude at any given stage has got to be at LEAST as hard as Cache Invalidation and Naming Things... I respect the amount of rigor and thought you all have put into it. «hats off»

Cheers! 👍

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 8.xwork is associated with a specific npm 8 release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@DabeDotCom@ruyadorno@lukekarrys@darcyclarke