使用load-grunt-tasks有什么缺点吗?

我最近遇到了负载咕tasks任务的高效魔法,但我想知道为什么它的使用似乎是例外,而不是我见过的大多数例子中的规则。 如果你不熟悉这个模块,它会这样做:

该模块将读取package.json中的dependencies/devDependencies/peerDependencies并加载与提供的模式匹配的grunt任务。

例如,在你的Gruntfile.js中这个混乱:

 grunt.loadNpmTasks('grunt-shell'); grunt.loadNpmTasks('grunt-sass'); grunt.loadNpmTasks('grunt-recess'); grunt.loadNpmTasks('grunt-sizediff'); grunt.loadNpmTasks('grunt-svgmin'); // and likely many, many more 

…可以用一个简单的replace:

 require('load-grunt-tasks')(grunt); 

那么,这个单线是否有任何缺点? 如果不是,那为什么它不是在线例子中注册Grunt任务的标准? 我在SO或Googz上找不到任何东西,对Node或Grunt也不是很熟悉,所以对此有所了解。

据我所知,基本上只有一个缺点,可能会超出这个优势:性能。 如果您正在使用监视,则每次触发更改时,模块都会加载组件。 我有更大的项目,速度下降是显着的。 你可以通过使用jit-grunt来避开这个问题,而jit-grunt与每个grunt-module(例如spritesmith)都不兼容。

也许不那么重要的是单个负载模块的速度下降。 load-grunt-tasks在加载模块之前首先为您的任务configurationbuild立索引。

2016年5月更新

正如@TamasHegedus在他的评论中指出的那样,这似乎不再适用于grunt-contrib-watch