Determine the inheritance of Jade templates.
Reduce compilation time for Jade files by understanding inheritance.
When a Jade template is modified, there is no way of knowing how that change has affected the rest of a project. Other files that have extended or included the modified file also need to be compiled.
As a result, common practice is to compile all template files to ensure that everything is up to date. This does not bode well for rapid development since files are unnecessarily being compiled and this can take a long time on a large project or if the use of inheritance and mixins is pervasive.
jade-inheritance to determine which files in a project extend and include modified files, and only compile those that are affected.
var JadeInheritance = require'jade-inheritance';var inheritance = 'foo.jade';
Integration with grunt-contrib-jade
// Gruntfile.jsgruntinitConfigwatch:jade:files:'app/**/*.jade'tasks:'jade:compile'nospawn: truejade:compile:options:basedir: 'app'pretty: truefiles:expand: truesrc: 'app/**/*.jade'dest: 'assets/'ext: '.html';var JadeInheritance = require'jade-inheritance';var changedFiles = ;var onChange = gruntutil_debouncevar options = gruntconfig'jade.compile.options';var dependantFiles = ;filesforEachvar directory = optionsbasedir;var inheritance = filename directory options;dependantFiles = dependantFilesconcatinheritancefiles;;var config = gruntconfig'jade.compile.files'0;configsrc = dependantFiles;gruntconfig'jade.compile.files' config;changedFiles = ;200grunteventon'watch'changedFilespushfilepath;onChange;;
$ npm install -g jade-inheritance
$ jade-inheritance --help
$ npm run-script build
jade-inheritance depends on its own version of Jade to parse templates. Since
jade-inheritance does not offer compilation, this must be done using other tools which may use a different version of Jade.