 
 
         dirname = path.dirname(file)
-        entry = @append(filename, body, {dirname})
+        entry = @append(filename, source ? body, {dirname})
         entry.target = opts.target if opts.target?
         entry.name = name = opts.name ? "main"
 

        return this

    readFile: (file) ->
        body = fs.readFileSync(file, 'utf-8')
        for fn in @filters
            body = fn.call(this, body, file)
        return body

    addEntry: (filename, opts = {}, callback) ->
        dirname = opts.dirname ? @dirname
        file = path.resolve(dirname, filename)
        body = opts.body ? @readFile(file)

        try required = @detective.find(body)
        catch err

            @emit("skip", {file:opts.file, name, dirname:dir ? dirname})
            (@skip[name] ?= []).push(dir ? @dirname)
            return this
        if opts.body?
            {source, body} = opts
        else
            {source, body} = @readFile(opts.file)

        try required = @detective.find(body)
        catch err
