hydrate 2.2.0-RC.0
Install from the command line:
Learn more about npm packages
$ npm install @architect/hydrate@2.2.0-RC.0
Install via package.json:
"@architect/hydrate": "2.2.0-RC.0"
About this version
@architect/hydrate ensures that all functions managed by Architect have their dependencies installed. Functions containing all required dependencies are considered to be 'hydrated' - thus the name!
@architect/hydrate supports dependencies managed in the following languages using the following package managers:
-
Node.js via
npm
usingpackage.json
(and optionallypackage-lock.json
), or viayarn
usingpackage.json
andyarn.lock
-
Python via
pip3
using arequirements.txt
file -
Ruby via
bundle
usingGemfile
andGemfile.lock
files
npm install @architect/hydrate
All methods accept an options
object can include the following properties:
-
autoinstall
- Boolean - Enables or disables automated Lambda dependency treeshaking via static code analysis- Defaults to
false
- Used by
install
- Defaults to
-
basepath
- String - Filesystem path in which Hydrate should search for functions- Defaults the current working directory
- Useful if you want to hydrate one function or a subset of functions
- Used by
install
+update
-
copyShared
- Boolean - Enables or disables copying of shared code folders (e.g.src/shared
) into Lambdas- Useful to disable if you want to just hydrate external dependencies
- Defaults to
true
- Used by
install
+update
-
cwd
- String - Root filesystem path of the project Hydrate is working in- Defaults to current working directory
- May be the same or different from
basepath
; if using in conjunction withbasepath
, specify a subset of the project withbasepath
, for example:-
{ cwd: '/your/project/', basepath: '/your/project/src/http/' }
runs Hydrate against/your/project/
(without having to useprocess.chdir
) and only hydrates functions within/your/project/src/http/**
-
- Used by
install
+update
+shared
-
hydrateShared
- Boolean - Enables or disables dependency hydration in shared code folders (e.g.src/shared
)- Useful to disable if you want to just hydrate external dependencies
- Defaults to
true
- Used by
install
+update
-
inventory
- Object - Architect Inventory object; generally used internally -
only
- String - Specify a subset of possible shared files forshared
to copy into Lambdas- Falsy by default
- Accepts:
shared
,views
, orstaticJson
- Used by
shared
-
quiet
- Boolean - Disables (most) logging -
symlink
- Boolean - Enables or disables symlinking instead of full directory copying, useful for local development- Defaults to
false
- Used by
install
+update
+shared
- Defaults to
-
timeout
- Number - Amount of time in milliseconds to give each package manager process to execute- Used by
install
+update
- Used by
-
verbose
- Boolean - Enables verbose logging
Note on
cwd
vsbasepath
:cwd
is necessary for Hydrate to find your project's manifest and key files and folders, whilebasepath
scopes hydration to a specific path. When in doubt, include neither parameter, Hydrate will default to process working directory; if you know you need to aim Hydrate at a specific place but aren't sure which parameter to use, usecwd
.
Installs function dependencies, then invokes hydrate.shared()
.
To ensure local development behavior is as close to staging
and production
as possible, hydrate.install()
(and other hydrate functions) uses:
-
Node.js:
npm ci
ifpackage-lock.json
is present andnpm i
if not; oryarn
-
Python:
pip3 install
-
Ruby:
bundle install
Note: by default update
also installs dependencies in shared folders like src/shared
and src/views
.
Updates function dependencies, then invokes hydrate.shared()
.
update
is functionally almost identical to install
, except it will update dependencies to newer versions if they exist. This is done via:
-
Node.js:
npm update
oryarn upgrade
-
Python:
pip3 install -U --upgrade-strategy eager
-
Ruby:
bundle update
Note: by default update
also updates dependencies in shared folders like src/shared
and src/views
.
Copies shared code (from src/shared
and src/views
, or your custom @shared
+ @views
paths, if any) into all functions.