有没有办法衡量npm脚本的性能,类似于time-grunt的工作方式?
我正在将一些关键构建任务移动到使用npm而不是Grunt,因为编写我自己的构建脚本比使用grunt-browserify之类的一些Grunt插件更灵活。
我尝试过使用console.time()
但是在脚本完成之前就完成了,我假设因为这些方法是异步的。我也尝试将npm脚本作为Grunt任务运行,如下所示:
grunt.registerTask('collectify', function () {
grunt.util.spawn({
cmd: 'npm',
args: ['run', 'collectify:app']
});
});
但输出与我从命令行运行npm run collectify:app
时的输出不同,可能是因为pwd问题。
彩色条很不错,但至少我想看看数字的时间。
答案 0 :(得分:1)
您最好的选择可能是[foo]之前和发布[foo]脚本。
因此,如果我有一个名为“foobar”的NPM脚本,那么我可以创建一个名为“preboofar”和“postfoobar”的脚本,它们将在“foobar”执行之前和之后自动执行。
因此,在“pre”中,您可以使用时间戳触摸文件,在“post”中,您可以读取该文件并计算差异。
答案 1 :(得分:0)
您是否尝试在time
命令之前添加npm run
命令?
所以如果你的命令是:
npm run collectify:app
变成:
time npm run collectify:app
它会输出3行,例如
real 0m11.580s
user 0m7.400s
sys 0m1.304s
让我知道它是否有帮助!