Pak*_*Pak 9 bash command-line node.js express
Express应用程序生成器(位于此处)的入门页面表示$ DEBUG=myapp:* npm start使用MacOS或Linux 启动服务器.
这很好,但是我无法理解这条线实际上在做什么.我猜想它会为变量分配一些东西DEBUG,但在退出服务器后我跑了echo $DEBUG,它什么都没打印.我猜:这里有点关键,但我不清楚如何/为什么.
希望有人可以为我打破这个.
DEBUG=myapp:* npm start 由两部分组成.
第一部分是DEBUG=myapp:*第二部分,第二部分是npm start
您可以DEBUG=myapp:*先在命令行工具中运行,然后再运行npm start.
DEBUG=myapp:* 意味着您要告诉nodejs您要打开日志记录以进行调试.
DEBUG设置为npm和 子进程的环境变量,但未在 shell 中设置,请考虑以下内容:
HELLO=World bash -c 'echo $HELLO' # World
HELLO=World bash -c "bash -c 'echo \$HELLO'" # World
echo $HELLO # Nothing, assuming that HELLO was null before running the above snippets
Run Code Online (Sandbox Code Playgroud)
在您的情况下,该值myapp:*被分配给变量DEBUG。这个变量将在内部可用npm,出于什么原因需要它我无法回答。
事实证明,我认为这比实际情况要复杂得多。切普纳的回答让我的头脑有些混乱。
我创建了一个 python 脚本来打印DEBUG变量并调用它而不是npm start
$ DEBUG=myapp:* python printvar.py
果然,这个打印出来了myapp:*。看来我遗漏的一大块是变量赋值后的空格用作命令之间的分隔符,而:*只不过是分配给 的变量的一部分的文本DEBUG。