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