在npm脚本中输出到命令行?

问题描述 投票:0回答:1

我的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) }}

换句话说,我想在脚本运行时看到通知。

npm command-line-interface package.json
1个回答
0
投票

跨平台(Windows / Linux / macOS ...)

您可以执行以下操作来记录脚本开始执行任务时的日期/时间:

"build": "node -e \"console.log('script started at: %s', Date())\" && postcss tailwind/tailwind.css -o css/cenic.tailwind.css"

说明:

  1. &&运算符左侧的读取部分;

    node -e \"console.log('script started at: %s', Date())\"
    
    • 利用nodejs命令行选项-e评估嵌入式JavaScript。
    • 内联脚本使用JavaScript的-econsole.log(...)
  2. Date()运算符右侧的命令是您要运行的任何命令,在您的方案中为Date()命令。

变化:

  • 要给日志着色,您可以添加一些&&。例如:

    postcss
  • 要记录npm脚本完成而不是启动的时间,您可以切换命令的顺序。例如:

    ANSI/VT100 Control sequences

仅适用于Nix平台(Linux / MacOS ...)

如果仅希望在* 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"

说明:

  1. "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"
    
    • 利用shell &&命令将消息打印到命令行。
    • [echo \"script started at: $(date)\" ,即echo部分,用于从shell echo命令获得输出。
  2. Command substitution运算符右侧的命令是您要运行的任何命令,在您的方案中为$(...)命令。

© www.soinside.com 2019 - 2024. All rights reserved.