     parser = _.find parsers, (parser) ->
       _.endsWith filename, parser
 
-    contents = if fileHasChanged(fullPath) and parser? or 
+    contents = if fileHasChanged(fullPath) and parser? or
                not  @_preprocessedCache[filename]?
                  data = fs.readFileSync(fullPath).toString()
                  @_preprocessedCache[filename] = templateParsers[parser](data, filename).toString()
                  @_preprocessedCache[filename]
                else
                  @_preprocessedCache[filename]
-    
+
     # Templates in a 'templates' folder are namespaced by folder after 'templates'
     if filename.indexOf('templates') > -1
       namespace = filename.split('templates')[-1..][0].replace /^\/|\..*/g, ''
     else
       namespace = filename.split('/')[-1..][0].replace /^\/|\..*/g, ''
-    
+
     tmplFileContents += "JST['#{namespace}'] = #{contents};\n"
-  
+
   tmplFileContents
 
 # Determine whether a file has changed since last preprocess or template parse
-# 
+#
 # @param {String} filename
 # @return {Boolean}
 

                  generateJSTs pkgName
  md5.update pkgContents
  @_fingerprintCache[pkgType][pkgName] = md5.digest('hex')
  
  
# Goes through asset declarations and expands them into full file paths, globs and all.
expandAssetGlobs = =>
  assets = {js: {}, css: {}, jst: {}}

    '.svg' : 'image/svg+xml'
    '.ttf' : 'font/truetype;charset=utf-8'
    '.woff': 'font/woff;charset=utf-8'

  offset = 0
  offsetContents = contents.substring(offset, contents.length)

  return contents unless offsetContents.match(/url/g)?

  # While there are urls in the contents + offset replace it with base 64
  # If that url() doesn't point to an existing file then skip it by pointing the
  # offset ahead of it
