Open KerimG opened 2 years ago
Having a similar issue here, but just to help you, maybe try running export
on it's own to print a debug output of all environment variables that will be exported to children processes
No idea, this seems like an environment issue to be honest. DEBUG
is checked once at the first import
of debug and cached.
I've been bitten by this the other day too. Turns out, DEBUG
is cached in LocalStorage, and in subsequent runs, LocalStorage will override the environment. You can do localStorage.debug = null
in a dev console to reset it.
@algernon that's a detail of the browser version. I believe OP is using the node side of things.
Same issue with Remix today, process.env shows the correct expected DEBUG string, but debug
never outputs anything.
Very weird.
Are/were you using regex in your code somewhere? possibly passing it into debug?
I think this issue was introduced with toNamespace()
in 4.1.0
When I had DEBUG = *
, I saw express was able to debug fine. I noticed that they're using debug 2.6.9, so I went through the versions and found that debug works as expected until 4.1.0. Seeing that toNamespace
converts regex into a namespace and realizing I was potentially passing regex into debug, I remembered Javascript's regex is weird. commenting out my regex returned the output in 4.3.4.
However, at that point, the universe decided I was done, as uncommenting it did not reintroduce the issue and no matter what I do now I can't reproduce it again, I've rolled everything back to exactly as it was when I had the problem and it's just gone 🤷
I am using 'debug' with TypeScript in an Electron project like so:
in my shell (zsh) I set the
DEBUG
env var like soexport DEBUG=foo
and then started running my application. Everything worked fine. Eventually, I changed the namespace fromfoo
tobar
and now no matter what I do, I cannot get any output. I tried resettingDEBUG
, I restarted my shell and set the environment variable again withexport DEBUG=bar
, I tried using the [cross-env]{https://www.npmjs.com/package/cross-env} to set it like so:but nothing ever shows up. I tried
and the
console.log
output is indeed:DEBUG bar
.The only way I can get it to work now is by doing:
The moment I change
const log = debug('bar');
back toconst log = debug('foo');
, I get output messages for thefoo
namespace no matter what's in the DEBUG env var.Any idea what might be happening here?