如何默认设置脚本以静默运行 package.json in node.js(如 npm run -s scriptnam



正如问题中提出的,我知道存在使用 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"
}

编辑:

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

> 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

但不是:

> 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

dev null 仍然制作了我不想出现的这一行:

> echo "I want this script to run silently" ## I don't want this

操作系统: Ubuntu 16.04 LTS

如果您的脚本在 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 脚本是为了方便起见,它有很好的钩子,可以在脚本调用之前和之后运行。

{
"description": "Some node demo server",
"main": "server.js",
"scripts": {
"start": "node server.js",
"somescript": "echo "I want this script to run silently" &> /dev/null  || true"
},
"author": "SomeDude"
}

如果您在 Mac 或 Linux 上进行开发,则可以将&> /dev/null附加到脚本命令中,以使该脚本本身的输出静音。

此外,如果您随后附加|| true则不会显示任何冒泡到 npm 的错误,这要归功于 npm 相信命令成功完成。

但是,您仍然会看到 npm 本身的输出,因为它调用该脚本,即

you$ npm run-script somescript
> your-app@1.0.0 somescript /your-app
> echo "I want this script to run silently" &> /dev/null  || true

最新更新