如何默认设置脚本在 node.js 中的 package.json 中静默运行(如 npm run -s scriptname)?

sab*_*sab 6 scripting node.js ubuntu-16.04

正如问题中所提出的,我知道存在使用 npm run -s somescript 的可能性,但我想知道是否有办法在默认情况下使用它,有什么想法吗?

{
  "description": "Some node demo server",
  "main": "server.js",
  "scripts": {
    "start": "node server.js",
    "somescript": "echo \"I want this script to run silently\""
  },
  "author": "SomeDude"
}
Run Code Online (Sandbox Code Playgroud)

编辑:

抱歉,我没有很好地说明我的需求,所以我只想:

> my-app@1.0.0 somescript /my-app  ##I don't care if this appears or not
I want this script to run silently  ## This would be echo's output, I want to see the echo output
Run Code Online (Sandbox Code Playgroud)

但不是:

> my-app@1.0.0 somescript /my-app  ##I don't care if this appears or not
> echo \"I want this script to run silently\" ## I don't want this line
I want this script to run silently ## I just want this, the ouput
Run Code Online (Sandbox Code Playgroud)

dev null 仍然使这一行我不想出现:

> echo \"I want this script to run silently\" ## I don't want this
Run Code Online (Sandbox Code Playgroud)

操作系统:Ubuntu 16.04 LTS

jem*_*oii 3

如果您的脚本在 Mac 或 Linux 上运行,您可以添加> /dev/null到脚本的末尾,它不会在控制台上打印任何内容。如果你问我的话,我很沉默。不过我建议您使用某种文件记录器,以便您可以看到发生的任何错误。

例子:

node server.js > /dev/null

您需要注意的是,当您将其放入 npm 脚本中时,它会向您显示其执行的命令行。

```bash bjemilo:test$ npm run somescript

test@1.0.0 somescript /Users/bjemilo/Desktop/test echo "我希望这个脚本静默运行" > /dev/null ```

但是删除 /dev/null 会产生这个

```bash bjemilo:test$ npm run somescript

test@1.0.0 somescript /Users/bjemilo/Desktop/test echo "我希望此脚本静默运行" > /dev/null

我希望这个脚本安静地运行```

这是预期的行为。但是,如果将 /dev/null 添加到 npm 命令中,则可以解决此问题。

在终端中使用 npm

npm run somescript > /dev/null

它什么也不打印。

npm run --silent somescript同样的结果

您始终可以创建一个 bash/shell 脚本来运行该命令。npm 脚本的存在是为了方便,它有很好的钩子,可以在脚本调用之前和之后运行。