2014-10-22 9 views
2

Я использовал assemble для создания библиотеки шаблонов. У меня есть шаблон как разные файлы, которые все встроены в один файл. У меня также есть несколько страниц, которые являются шаблонами для HTML.Только визуализировать страницы, которые я изменил с помощью сборки

Проблема в том, что если я поменяю одну вещь на любом из файлов, я должен ждать, пока все это будет визуализировано, это займет до 30 секунд из-за количества страниц, которые у меня есть. Как вы можете себе представить, это может расстроиться, и я всего лишь на полпути через проект.

Кто-нибудь знает, как заставить Grunt отображать только те страницы, которые я изменил, а не все из них?

Ниже мой Gruntfile.js:

'use strict'; 

module.exports = function(grunt) { 

// 1. All configuration goes here 
grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 

    concat: { 
     dist: { 
      src: [ 
       'vendor/jquery-ui/ui/core.js', 
       'vendor/jquery-ui/ui/widget.js', 
       'vendor/jquery-ui/ui/accordion.js', 
       'vendor/jquery-ui/ui/datepicker.js', 
       'javascript/slick/slick.js', 
       'vendor/magnific-popup/dist/jquery.magnific-popup.min.js', 
       'vendor/heapbox/src/jquery.heapbox-0.9.4.js', 
       'vendor/jquery-waypoints/waypoints.js', 
       'vendor/jquery-waypoints/shortcuts/sticky-elements/waypoints-sticky.js', 
       'javascript/*.js' 
      ], 
      dest: 'public/javascript/scripts.js' 
     } 
    }, 

    uglify: { 
     build: { 
      src: 'public/javascript/scripts.js', 
      dest: 'public/javascript/scripts.min.js' 
     } 
    }, 

    copy: { 
     main: { 
      src: [ 
       'vendor/jquery/dist/*.js', 
       'vendor/prismjs/*', 
       'vendor/bigSlide/**', 
       'vendor/bigSlide/**', 
       'vendor/magnific-popup/dist/*', 
       'images/*' 
      ], 
      dest: 'public/' 
     } 
    }, 

    sass: { 
     dist: { 
      options: { 
       style: 'compressed' 
      }, 
      files: { 
       'public/css/style.min.css': 'scss/style.scss' 
      } 
     }, 
     expanded: { 
      options: { 
       style: 'expanded' 
      }, 
      files: { 
       'public/css/style.css': 'scss/style.scss' 
      } 
     } 
    }, 

    watch: { 
     all: { 
      files: ['*.hbs', 'patterns/*.hbs', 'layouts/*.hbs', 'templates/*.hbs'], 
      tasks: ['assemble'], 
      options: { 
       spawn: false 
      } 
     }, 
     css: { 
      files: ['scss/*.scss', 'scss/**/*.scss'], 
      tasks: ['sass'], 
      options: { 
       spawn: false 
      } 
     }, 
     copy: { 
      files: ['images/*', 'vendor/*', 'CHANGELOG'], 
      tasks: ['copy'], 
      options: { 
       spawn: false 
      } 
     }, 
     concat: { 
      files: ['javascript/*.js'], 
      tasks: ['concat', 'uglify'], 
      options: { 
       spawn: false 
      } 
     } 
    }, 

    assemble: { 
     options: { 
      flatten: false, 
      plugins: ['assemble-middleware-permalinks'], 
      partials: ['patterns/*.hbs'], 
      helpers: ['handlebars-helper-compose', 'handlebars-helper-include' ], 
      layoutdir: 'layouts', 
      layout: 'library.hbs', 
      data: ['templates/data/*.{json,yml}'], 
      collections: [{ 
       name: 'patterns', 
       inflection: 'pattern' 
      }] 
     }, 
     pages: { 
      src: ['*.hbs', 'patterns/*.hbs', 'templates/*.hbs'], 
      dest: 'public/' 
     }, 
     patterns: { 
      options: { 
       layout: 'default.hbs' 
      }, 
      files: { 
       'public/': ['patterns/*.hbs'] 
      } 
     }, 
     files: { 
      options: { 
       layout: 'default.hbs' 
      }, 
      files: { 
       'public/': ['templates/*.hbs'] 
      } 
     } 
    } 

}); 

// 3. Where we tell Grunt we plan to use this plug-in. 
grunt.loadNpmTasks('assemble'); 
grunt.loadNpmTasks('grunt-contrib-sass'); 
grunt.loadNpmTasks('grunt-contrib-watch'); 
grunt.loadNpmTasks('grunt-contrib-concat'); 
grunt.loadNpmTasks('grunt-contrib-uglify'); 
grunt.loadNpmTasks('grunt-contrib-copy'); 

// 4. Where we tell Grunt what to do when we type "grunt" into the terminal. 
grunt.registerTask('default', ['copy', 'assemble', 'sass', 'watch']); 

}; 

Может кто-нибудь помочь? Приветствия. Стив

ответ

0

Вы пробовали: https://www.npmjs.org/package/grunt-newer

Он работает с двумя типами задач:

1) Задачи, которые определяют как SRC и DEST файлы. В этом случае задача, предваряемая новым, будет настроена на запуск с src-файлами, которые являются более новыми, чем соответствующий файл dest (на основе mtime файлов).

2) Задачи, которые определяют только файлы src. В этом случае задача, предваряемая новым, будет настроена на запуск с src-файлами, которые являются более новыми, чем предыдущий успешный запуск той же задачи.

+0

Thanks Tom, Я дал это, и он регистрирует то, что изменилось, но все еще собирает все страницы. Я могу настроить настройки, поэтому я буду продолжать играть. Кажется, что-то, с чем команда Assemble не беспокоится - https://github.com/assemble/assemble/issues/451 – mrsteveheyes

 Смежные вопросы

  • Нет связанных вопросов^_^