     config = require(fullPath).config
   catch error
     throw new Error "couldn\'t load config #{fullPath}. #{error}"
+
   setConfigDefaults config, configPath
-
-  deprecations = getConfigDeprecations config
-  deprecations.forEach logger.warn if deprecations.length > 0
-
+  warnAboutConfigDeprecations config
   applyOverrides config, options
   deepExtend config, options
-  replaceConfigSlashes config if isWindows
+  replaceConfigSlashes config
   normalizeConfig config
+
   readComponents '.', 'bower', (error, bowerComponents) ->
     if error and not /ENOENT/.test(error.toString())
       logger.error error


applyOverrides = (config, options) ->
  options.env.forEach (override) ->
    deepExtend config, config.overrides?[override] or {}, true
  config

deepExtend = (object, properties, isRoot) ->
  Object.keys(properties).forEach (key) ->
    value = properties[key]
    isIgnored = (isRoot and key is 'files')
    if toString.call(value) is '[object Object]' and not isIgnored
      object[key] ?= {}
      deepExtend object[key], value
    else
      object[key] = value
  object

  if isWindows then _.replace(/\\/g, '\/') else _

exports.replaceConfigSlashes = replaceConfigSlashes = (config) ->
  return config is isWindows
  files = config.files or {}
  Object.keys(files).forEach (language) ->
    lang = files[language] or {}
