笨拙的加载任务

15 loading watch gruntjs

有没有人可以告诉我如何让更快的任务加载.我真的想减少加载时间,因为大多数任务需要1秒才能加载.

特别是对于'手表'任务.当我在观察变化时,我真的想要更快地编译sass.

有任何想法吗?

感谢名单

cur*_*ist 28

你真的在寻找这个:jit-grunt.

而不是每次都加载所有任务,jit-grunt只会加载那些必要的任务.


bos*_*sch 8

有与OP相同的问题:grunt watch对于编译.less文件和liveReload非常慢,所以这就是我所做的:

  1. 安装time-grunt以显示每个任务的执行时间:

    $ npm install --save-dev time-grunt
    
    Run Code Online (Sandbox Code Playgroud)

    然后在模块导出后立即放置此行:

    module.exports = function(grunt) {
    require('time-grunt')(grunt);
    
    Run Code Online (Sandbox Code Playgroud)

    在运行grunt之后,您将注意到哪些任务比其他任务花费更长时间.在我的情况下,它是在每个文件更改加载所有依赖项,所以我找到了这个解决方案:

  2. 安装jit-grunt以按需加载依赖项,而不是每次grunt执行任务时加载所有这些依赖项.

    $ npm install jit-grunt --save-dev
    
    Run Code Online (Sandbox Code Playgroud)

    并替换gruntfile中的初始加载器

    require('load-grunt-tasks')(grunt); 
    
    Run Code Online (Sandbox Code Playgroud)

    require('jit-grunt')(grunt);
    
    Run Code Online (Sandbox Code Playgroud)

这为.css更新节省了我的liveReload时间,从~1600ms到~250ms.

PS:@curist也提出了jit-grunt,但我认为更多细节可能对任何人都有帮助.


All*_*sen 0

听起来您的计算机是这里的问题,除了升级之外您没有太多选择。

我唯一能想到的是并发任务,如果你可以并发运行这些任务,你可能会节省一些时间。

您可以使用回购协议中所述的grunt-concurrent :

同时运行 Coffee 和 Sass 等缓慢任务可能会显着缩短构建时间。如果您需要同时运行多个阻塞任务(例如 nodemon 和 watch),此任务也很有用,如示例配置中所示。

您还可以使用此技巧仅在需要时加载任务。