require-j tenta preencher a lacuna deixada pela portabilidade do jade para o cliente, ou seja, a capacidade de usar construções de herança de template como extends e include .
Para carregar modelos, o jade depende de certos módulos de nó (como path
e fs
) para existir durante o tempo de execução e usa require
para acessá-los. O problema é que o nó require
é substituído por RequireJS, require
que não tem noção de módulos de nó.
Para resolver esse problema, require-j substitui as funções parseInclude e parseExtends padrão do jade por uma variante que utiliza APIs RequireJS, como toUrl e . Isso é obtido sem nenhuma modificação na biblioteca jade.fetchText