javascriptnode.jsgulpvinyl

My gulp plugin with through2 returns file in strange XML-like format


I'm writing plugin for Gulp, and in order to process file i need to get it's full path. I used through2 package, then prepared processFile(file) function, but as an argument from through2 it receives file in strange XML-like format instead of object like file.path, file.encoding and so on.

How can I receive file.path when through2 is returning each file in following format:

<File "relative/path/to/file/aaa.js" ...

Full code:

var through = require('through2');

module.exports = function() {
  return through.obj(function(file, encoding, callback) {

    function processFile(file){
      console.log(file); // returns <File "relative/path/to/file/aaa.js" ...
    }

    callback(null, processFile(file));
  });
};

Solution

  • What you get on the console is just how File objects are turned into strings by console.log, which is what happens when you execute console.log(file). Ultimately, the inspect method is called and you get the results you see (which is not XML, by the way).

    If I use your code and dump to the console file.path, I get the correct values. Same with file.base and file.relative.