输出到 npm 脚本中的命令行?
Output to command line within npm scripts?
我的 package.json 中有一个脚本,代码如下:
"scripts": {
"build": "postcss tailwind/tailwind.css -o css/cenic.tailwind.css",
"watch": "postcss tailwind/tailwind.css -o css/cenic.tailwind.css --watch"
},
它工作正常 - 但我如何让它输出文本到命令行,比如
script ran at {{ date(now) }}
换句话说,我想在脚本有 运行 时看到通知。
跨平台(Windows/Linux/macOS...)
您可以执行以下操作以在脚本开始其任务时记录 date/time:
"build": "node -e \"console.log('script started at: %s', Date())\" && postcss tailwind/tailwind.css -o css/cenic.tailwind.css"
解释:
&&
运算符左边的部分是;
node -e \"console.log('script started at: %s', Date())\"
&&
运算符右侧的命令是您想要 运行 的任何命令,在您的场景中是 postcss
命令.
变化:
要为日志着色,您可以添加一些 ANSI/VT100 Control sequences。例如:
"build": "node -e \"console.log('%sscript started at: %s%s', '\x1b[42;30m', Date(), '\x1b[0m' )\" && postcss tailwind/tailwind.css -o css/cenic.tailwind.css"
要记录 npm 脚本完成而不是启动的时间,您可以切换命令的顺序。例如:
"build": "postcss tailwind/tailwind.css -o css/cenic.tailwind.css && node -e \"console.log('script completed at: %s', Date())\""
仅限 Nix 平台(Linux/MacOS...)
如果您只想要 运行 在 *nix 平台上的解决方案,那么您可以改为执行以下操作:
"build": "echo \"script started at: $(date)\" && postcss tailwind/tailwind.css -o css/cenic.tailwind.css"
解释:
&&
运算符左侧的部分为:
echo \"script started at: $(date)\"
- 利用 shell
echo
命令将消息打印到命令行。
- Command substitution, i.e. the
$(...)
part, is utilized to obtain the output from the shells date
命令。
&&
运算符右侧的命令是您想要 运行 的任何命令,在您的场景中是 postcss
命令.
如果您想将视觉样式应用到 echo
命令,请参考我的回答
我的 package.json 中有一个脚本,代码如下:
"scripts": {
"build": "postcss tailwind/tailwind.css -o css/cenic.tailwind.css",
"watch": "postcss tailwind/tailwind.css -o css/cenic.tailwind.css --watch"
},
它工作正常 - 但我如何让它输出文本到命令行,比如
script ran at {{ date(now) }}
换句话说,我想在脚本有 运行 时看到通知。
跨平台(Windows/Linux/macOS...)
您可以执行以下操作以在脚本开始其任务时记录 date/time:
"build": "node -e \"console.log('script started at: %s', Date())\" && postcss tailwind/tailwind.css -o css/cenic.tailwind.css"
解释:
&&
运算符左边的部分是;node -e \"console.log('script started at: %s', Date())\"
&&
运算符右侧的命令是您想要 运行 的任何命令,在您的场景中是postcss
命令.
变化:
要为日志着色,您可以添加一些 ANSI/VT100 Control sequences。例如:
"build": "node -e \"console.log('%sscript started at: %s%s', '\x1b[42;30m', Date(), '\x1b[0m' )\" && postcss tailwind/tailwind.css -o css/cenic.tailwind.css"
要记录 npm 脚本完成而不是启动的时间,您可以切换命令的顺序。例如:
"build": "postcss tailwind/tailwind.css -o css/cenic.tailwind.css && node -e \"console.log('script completed at: %s', Date())\""
仅限 Nix 平台(Linux/MacOS...)
如果您只想要 运行 在 *nix 平台上的解决方案,那么您可以改为执行以下操作:
"build": "echo \"script started at: $(date)\" && postcss tailwind/tailwind.css -o css/cenic.tailwind.css"
解释:
&&
运算符左侧的部分为:echo \"script started at: $(date)\"
- 利用 shell
echo
命令将消息打印到命令行。 - Command substitution, i.e. the
$(...)
part, is utilized to obtain the output from the shellsdate
命令。
- 利用 shell
&&
运算符右侧的命令是您想要 运行 的任何命令,在您的场景中是postcss
命令.
如果您想将视觉样式应用到 echo
命令,请参考我的回答