serverless-env-vars
Run your scripts using the same environment variables that are loaded by serverless.
Installation
npm i --save-dev serverless-env-vars
yarn --dev severless-env-vars
Usage
The main usage of this library will be to run it on the CLI, it will create a child process for your commands
that are configured with {...process.env, ...serverlessEnvVars}
as the environment.
serverless-env-vars npm run build
STAGE=prod serverless-env-vars ...
API
There is an exposed node API if that's more your thing. The CLI is a yargs
-based wrapper around this function.
runWithEnvVars(options: RunWithEnvVarsOptions): Promise<void>
import { runWithEnvVars } from 'serverless-env-vars'
runWithEnvVars({ cmd:'npm', args: ['run', 'build'] }).catch(error => {
console.error(error)
process.exitCode = 1
})
export type RunWithEnvVarsOptions = {
readonly cmd: string
readonly args: readonly string[]
readonly watch?: boolean
readonly log?: boolean
readonly stage?: string
}
getConfiguration(): Promise<{ configurationPath: string, configuration: Config }>
Retrieve the configuration of your local serverless setup. If a configuration can not be found or
parsed this will throw.
import { getConfiguration } from 'serverless-env-vars'
async function example() {
const { configurationPath, configuration } = await getConfiguration()
}
createServerless({ stage?: string }): Promise<Serverless>
Easily create a Serverless instance.
import { createServerless } from 'serverless-env-vars'
async function example() {
const serverless = await createServerless({ stage: 'prod' })
}
getEnvVars({ stage?: string }): Promise<Record<string, string>>
Get environment variables for your local serverless configuration.
import { getEnvVars } from 'serverless-env-vars'
async function example() {
const envVars = await getEnvVars({ stage: 'prod' })
}
setEnvVars(envVars: Record<string, string>): void
Set the environment variables within process.env