Быстрее загружать задачи загрузки

Есть ли кто-нибудь, кто может рассказать мне, как быстрее загружать задания. Я действительно хочу уменьшить время загрузки, потому что для большинства задач требуется 1 секунда для загрузки.

Специально для задачи "смотреть". когда я наблюдаю за изменениями, я очень хочу скомпилировать sass намного быстрее.

Любые идеи?

Thanx

Ответы

Ответ 1

Вы действительно ищете: jit-grunt.

Вместо загрузки всех задач каждый раз, jit-grunt загружает только те, которые необходимы.

Ответ 2

Была та же проблема, что и часы OP: grunt были очень медленными для компиляции бездействующих файлов и liveReload, так вот что я сделал:

  • установите time-grunt, чтобы показать время выполнения для каждой задачи:

    $ npm install --save-dev time-grunt
    

    а затем поместите эту строку сразу после модуля-экспорта:

    module.exports = function(grunt) {
    require('time-grunt')(grunt);
    

    После запуска grunt вы заметите, какие задачи заняли больше времени, чем другие. В моем случае это была загрузка всех зависимостей при каждом изменении файла, поэтому я нашел это решение:

  • установите jit-grunt, чтобы загружать зависимости по требованию, а не загружать все из них каждый раз, когда grunt выполняет задачу.

    $ npm install jit-grunt --save-dev
    

    и замените начальный загрузчик в файле grunt

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

    с

    require('jit-grunt')(grunt);
    

Это спасло мое время liveReload для обновлений .css от ~ 1600 мс до ~ 250 мс.

PS: @curist предложил jit-grunt, но я думал, что более подробная информация может помочь кому-либо.

Ответ 3

Если ваш ворчание находится в виртуальном боксе Vagrant, вы можете синхронизировать его через nfs, что немного быстрее, чем общий доступ по умолчанию. (но еще медленнее, чем встроенная файловая система)

В вашем Vagrantfile:

config.vm.synced_folder ".", "/vagrant", type: "nfs"

На моей машине время для загрузки задач (с помощью ssd):

native:                  ~1s
nfs:                     ~4s
default Vagrant sharing: ~16s

Ответ 4

Такая же проблема, после изменения и выполнения задачи все модули перезагружались.

Но я нашел очень хорошее решение на github (https://github.com/steida/grunt-este-watch)

Что случилось с официальным вступлением в грунт?

Он медленный и багги, потому что он использует комбинацию fs.fileWatch и fs.watch по исторической причине. Из Node 0.9.2+ fs.watch в порядке.

Что делать?

  • установить grunt-este-watch

    npm install grunt-este-watch --save-dev
    
  • изменить вкладчик

    grunt.loadNpmTasks('grunt-contrib-watch');
    

    чтобы посмотреть

    grunt.loadNpmTasks('grunt-este-watch');
    
  • изменить задачу

    watch: {
      javascript: {
          files: 'src/js/**/*',
          tasks: ['uglify']
      }
    }
    

    к

    esteWatch: {
       options: {
          dirs: ['../src/**/*']
       },
       'js': function(filepath) { return 'uglify' }
    }
    

Ответ 5

Похоже, что здесь проблема с вашим компьютером, у вас не будет много вариантов, но для обновления.

Единственное, о чем я могу думать, это одновременные задачи, если вы можете одновременно запускать задачи, вы можете сэкономить время.

Вы можете использовать grunt-concurrent, как указано в репо:

Выполнение медленных задач, таких как Coffee и Sass, может значительно увеличить время сборки. Эта задача также полезна, если вам нужно запустить несколько задач блокировки, таких как nodemon и смотреть сразу, как показано в примере config.

Вы также можете загружать задания только при необходимости этот трюк.