     @packageDirPaths = []
     @deferredActivationHooks = []
     @triggeredActivationHooks = new Set()
-    @packagesCache = require('../package.json')?._atomPackages ? {}
+    @packagesCache = packageJSON._atomPackages ? {}
+    @packageDependencies = packageJSON.packageDependencies ? {}
     @initialPackagesLoaded = false
     @initialPackagesActivated = false
     @loadedPackages = {}

    # of the first package isn't skewed by being the first to require atom
    require '../exports/atom'

    packagePaths = @getAvailablePackagePaths()
    packagePaths = packagePaths.filter (packagePath) => not @isPackageDisabled(path.basename(packagePath))
    packagePaths = _.uniq packagePaths, (packagePath) -> path.basename(packagePath)
    @config.transact =>
      @loadPackage(packagePath) for packagePath in packagePaths
      return
    @initialPackagesLoaded = true
    @emitter.emit 'did-load-initial-packages'

Package = require './package'
ThemePackage = require './theme-package'
{isDeprecatedPackage, getDeprecatedPackageMetadata} = require './deprecated-packages'
packageJSON = require('../package.json')

# Extended: Package manager for coordinating the lifecycle of Atom packages.
#
