Next: Manually installed package, Previous: Customizing built-in variables, Up: Loading Packages [Contents][Index]
While the :after keyword delays loading until the dependencies
are loaded, the somewhat simpler :requires keyword never
loads the package if the dependencies are not available when the
use-package declaration is evaluated. In this context,
“available” means that foo is available if (featurep 'foo) evaluates to a non-nil value. For example:
(use-package abbrev :requires foo)
This is the same as:
(use-package abbrev :if (featurep 'foo))
As a convenience, a list of such packages may be specified:
(use-package abbrev :requires (foo bar baz))
For more complex logic, such as that supported by :after,
simply use :if and the appropriate Lisp expression.