Roman Hotsiy 6edfbdcf4e v1.0.0 🎁
2017-07-25 22:04:05 +02:00
2017-06-10 12:19:32 +02:00
Up
2017-06-16 15:31:47 +02:00
2017-04-22 16:07:11 +02:00
v1.0.0 🎁
2017-07-25 22:04:05 +02:00
2017-07-25 19:48:07 +02:00
2017-05-09 12:47:48 +02:00
2017-04-22 16:00:55 +02:00
2017-06-10 12:19:32 +02:00

serverless-plugin-typescript

serverless npm version CircleCI

Serverless plugin for zero-config Typescript support

Features

  • Zero-config: Works out of the box without the need to install any other compiler or plugins
  • Supports ES2015 syntax + features (export, import, async, await, Promise, ...)

Install

yarn add --dev serverless-plugin-typescript

Add the following plugin to your serverless.yml:

plugins:
  - serverless-plugin-typescript

Configure

See example folder for a minimal example.

tsconfig.json

The default tsconfig.json file used by the plugin looks like this:

{
  "preserveConstEnums": true,
  "strictNullChecks": true,
  "sourceMap": true,
  "target": "es5",
  "outDir": ".build",
  "moduleResolution": "node",
  "lib": ["es2015"],
  "rootDir": "./"
}

Note 1: The outDir and rootDir options cannot be overwritten.

Note 2: Don't confuse the tsconfig.json in this repository with the one mentioned above.

Including extra files

All files from package/include will be included in the final build file. See Exclude/Include

Usage

Automatic compilation

The normal Serverless deploy procedure will automatically compile with Typescript:

  • Create the Serverless project with serverless create -t aws-nodejs
  • Install Serverless Typescript as above
  • Deploy with serverless deploy

Usage with serverless-offline

The plugin integrates very well with [serverless-offline][https://github.com/dherault/serverless-offline] to simulate AWS Lambda and AWS API Gateway locally.

Add the plugins to your serverless.yml file and make sure that serverless-plugin-typescript precedes serverless-offline as the order is important:

  plugins:
    ...
    - serverless-plugin-typescript
    ...
    - serverless-offline
    ...

Run serverless offline or serverless offline start to start the Lambda/API simulation.

In comparison to serverless offline, the start command will fire an init and a end lifecycle hook which is needed for serverless-offline and e.g. serverless-dynamodb-local to switch off resources (see below)

serverless-dynamodb-local

Configure your service the same as mentioned above, but additionally add the serverless-dynamodb-local plugin as follows:

  plugins:
    - serverless-plugin-typescript
    - serverless-dynamodb-local
    - serverless-offline

Run serverless offline start.

Other useful options

You can reduce the clutter generated by serverless-offline with --dontPrintOutput and disable timeouts with --noTimeout.

Run a function locally

To run your compiled functions locally you can:

$ serverless invoke local --function <function-name>

Options are:

  • --function or -f (required) is the name of the function to run
  • --watch - recompile and run a function locally on source changes
  • --path or -p (optional) path to JSON or YAML file holding input data
  • --data or -d (optional) input data

Help & Community Slack Status

Join our Slack community if you run into issues or have questions. We love talking to you!

S
Description
No description provided
Readme 216 KiB
Languages
TypeScript 100%