我的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) }}
换句话说,我想在脚本运行时看到通知。
您可以执行以下操作来记录脚本开始执行任务时的日期/时间:
"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())\"
-e
评估嵌入式JavaScript。-e
和console.log(...)
。Date()
运算符右侧的命令是您要运行的任何命令,在您的方案中为Date()
命令。
要给日志着色,您可以添加一些&&
。例如:
postcss
要记录npm脚本完成而不是启动的时间,您可以切换命令的顺序。例如:
ANSI/VT100 Control sequences
如果仅希望在* nix平台上运行的解决方案,则可以执行以下操作:
"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"
"build": "postcss tailwind/tailwind.css -o css/cenic.tailwind.css && node -e \"console.log('script completed at: %s', Date())\""
运算符左侧的部分显示为:
"build": "echo \"script started at: $(date)\" && postcss tailwind/tailwind.css -o css/cenic.tailwind.css"
&&
命令将消息打印到命令行。echo \"script started at: $(date)\"
,即echo
部分,用于从shell echo
命令获得输出。Command substitution运算符右侧的命令是您要运行的任何命令,在您的方案中为$(...)
命令。