CLI tool to run Twilio Functions locally for development
You can install the CLI tool via npm or another package manager. Ideally install it as a dev dependency instead of global:
# Install it as a dev dependency
$ npm install twilio-run --save-dev
# Afterwards you can use by using:
$ node_modules/.bin/twilio-run
$ npx twilio-run
# Or inside your package.json scripts section as "twilio-run"  CLI tool to run Twilio Functions locally for development
  Usage
    $ twilio-run [dir]
  Options
    --load-local-env, -f Includes the local environment variables
    --env, -e [/path/to/.env] Loads .env file, overrides local env variables
    --port, -p <port> Override default port of 3000
    --ngrok [subdomain] Uses ngrok to create an outfacing url
  Examples
    $ twilio-run
    # Serves all functions in current functions sub directory
    $ twilio-run demo
    # Serves all functions in demo/functions
    $ PORT=9000 twilio-run
    # Serves functions on port 9000
    $ twilio-run --port=4200
    # Serves functions on port 4200
    $ twilio-run --env
    # Loads environment variables from .env file
    $ twilio-run --ngrok
    # Exposes the Twilio functions via ngrok to share them
The module also exposes two functions that you can use outside of the CLI tool:
This allows you to trigger running an express server that will expose all functions and assets. Example:
const { runDevServer } = require('twilio-run');
runDevServer(9000)
  .then(app => {
    console.log(`Server is running on port ${app.get('port')})`);
  })
  .catch(err => {
    console.error('Something failed');
  });You can take the handler function of a Twilio Function file and expose it in an existing Express server. Example:
const express = require('express');
const bodyParser = require('body-parser');
const { handlerToExpressRoute } = require('twilio-run');
const { handler } = require('./path/to/function.js');
const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.all(handlerToExpressRoute(handler));
app.listen(3000, () => console.log('Server running on port 3000'));💖 Please be aware that this project has a Code of Conduct 💖
- Fork the project
- Clone your own fork like this:
$ git clone git@github.com:dkundel/twilio-run.git- Install the dependencies
$ cd twilio-run
$ npm install- Make changes
- Test your changes by running
$ npm test- Commit your changes and open a pull request
Thanks goes to these wonderful people (emoji key):
| Dominik Kundel 💻 | dbbidclips 💻 🐛 | Shelby Hagman 🐛 💻 | 
|---|
This project follows the all-contributors specification. Contributions of any kind welcome!