0

I simply extends the Filesystem loader like:

var nunjucks = require('nunjucks');

MyLoader = nunjucks.FileSystemLoader.extend({

        getSource: function(name) {

            return this.parent().getSource(name);
        }

 });

how ever I always get:

TypeError: Path must be a string. Received undefined
    at assertPath (path.js:8:11)
    at Object.posix.resolve (path.js:426:5)
    at Loader.extend.getSource (/home/myname/myapp/node_modules/nunjucks/src/node-loaders.js:60:26

How to call the parent method getSource properly ?

please help. thanks

egig
  • 4,370
  • 5
  • 29
  • 50

1 Answers1

0
var CustomLoader = nunjucks.FileSystemLoader.extend({
    getSource: function(name) {
        var result = nunjucks.FileSystemLoader.prototype.getSource.call(this, name); // !!!

        if (!result) 
            return null;

        result.src = ... // do-smth-with-content
        return result;
    }
}); 

var env = new nunjucks.Environment(
    new CustomLoader([your-template-paths], { watch: false, noCache: false }), 
    {autoescape: true});
env.express(app); // don't forget connect to express

You can find more details on github (nunjucks-minify-loaders)

Aikon Mogwai
  • 4,954
  • 2
  • 18
  • 31