
load_all
loads a package. It roughly simulates
what happens when a package is installed and loaded with
library
.load_all(pkg = ".", reset = FALSE, recompile = FALSE,
export_all = TRUE, quiet = FALSE)
as.package
for more informationTRUE
(the default), export
all objects. If FALSE
, export only the objects
that are listed as exports in the NAMESPACE file.TRUE
suppresses output from this
function.reset=TRUE
.
When reloading a package, A, that another package, B,
depends on, load_all
might not be able to cleanly
unload and reload A. If this causes problems, try using
unloading package B with unload
before
using load_all
on A. Support for packages with compiled C/C++/Fortran code in
the /src/
directory is experimental. See
compile_dll
for more information about
compiling code.
The namespace environment
, is
a child of the imports environment, which has the name
attribute imports:pkgname
. It is in turn is a
child of
, which is a child of the
global environment. (There is also a copy of the base
namespace that is a child of the empty environment.)
The package environment
is an
ancestor of the global environment. Normally when loading
a package, the objects listed as exports in the NAMESPACE
file are copied from the namespace to the package
environment. However, load_all
by default will
copy all objects (not just the ones listed as exports) to
the package environment. This is useful during
development because it makes all objects easy to access.
To export only the objects listed as exports, use
export_all=TRUE
. This more closely simulates
behavior when loading an installed package with
library
, and can be useful for checking for
missing exports.
load_all
also inserts shim functions into the
imports environment of the laded package. It presently
adds a replacement version of system.file
which
returns different paths from base::system.file
.
This is needed because installed and uninstalled package
sources have different directory structures. Note that
this is not a perfect replacement for
base::system.file
.
unload
# Load the package in the current directory
load_all("./")
# Running again loads changed files
load_all("./")
# With reset=TRUE, unload and reload the package for a clean start
load_all("./", TRUE)
# With export_all=FALSE, only objects listed as exports in NAMESPACE
# are exported
load_all("./", export_all = FALSE)
Run the code above in your browser using DataLab