Simply declare npm scripts with a name of the form
the name of a serverless hook event, i.e.:
hook:before:offline:start: Run script before serverless offline launches. This can be particularly useful to setup the local environment, such as launching a local kinesis and initializing it by creating some streams.
hook:after:offline:start: Run cleanup scripts after serverless offline terminates.
hook:before:package:initialize: Run script before the packaging initialization.
First, add the plugin to your project:
npm install --save-dev serverless-hooks
Then, inside your project's
serverless.yml file add
serverless-hooks to the top-level
plugins section. If there is no plugin section you will need to add it to the file.
Plugin behavior may be configured by adding keys to the
serverless-hooks section in the
top-level custom section.
These are the configuration entries and their default values:
custom:serverless-hooks:hookPrefix: hook # The npm script prefix to indicate a serverless hook scriptrunAllOptions: # See for detailsstderr: # boolean to enable stderr, or path to filestdout: # boolean to enable stdout, or path to filestdin: # boolean to enable stdin, or path to file
When scripts are executed, the environment variable
SLS_CONTEXT contains a path to
a JSON file with the contents of the
serverless object. The available properties are:
- invocationId: Unique GUID for the current serverless invocation
- version: Serverless framework version
- cliCommands: Array with provided CLI commands (e.g. [ 'offline' ])
- cliOptions: Object with provided CLI options
- servicePath: Path to directory containing serverless.yml file
- service: Object with contents of resolved serverless.yml file