使用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
。