An extension of the serverless-webpack plugin that bundles your Node.js Lambda functions.
npm install serverless-bundle-no-pg-nativeAn extension of the serverless-webpack plugin. This plugin bundles your Node.js Lambda functions with sensible defaults so you don't have to maintain your own Webpack configs.
- Linting via ESLint
- Caching for faster builds
- Use ES6 import/export
- Supports transpiling unit tests with babel-jest
- Source map support for proper error messages
And all this works without having to install Webpack, Babel, ESLint, etc. or manage any of their configs. Simply add serverless-bundle to your app and you are done!
`` diff
- "eslint"
- "webpack"
- "@babel/core"
- "babel-eslint"
- "babel-loader"
- "eslint-loader"
- "@babel/runtime"
- "@babel/preset-env"
- "serverless-webpack"
- "source-map-support"
- "webpack-node-externals"
- "eslint-config-strongloop"
- "@babel/plugin-transform-runtime"
- "babel-plugin-source-map-support"
+ "serverless-bundle": "^1.1.12"
`
You can read more about this over on Serverless Stack.
---
Install the serverless-bundle plugin using:
` bash`
$ npm install --save-dev serverless-bundle
Then add it to your serverless.yml.
` yaml`
plugins:
- serverless-bundle
To run your tests using the same Babel config used in the plugin add the following to your package.json:
` json`
"scripts": {
"test": "serverless-bundle test"
}
Once installed and added to your serverless.yml, serverless-bundle will automatically package your functions using Webpack when you run the various serverless commands.
You can configure the following through your serverless.yml.
` yaml`
custom:
bundle:
sourcemaps: true # Enable source maps
caching: true # Enable Webpack caching
stats: false # Don't print out any Webpack output
linting: true # Enable linting as a part of the build process
#### Advanced Options
- ESLint
This plugin uses eslint-config-strongloop. You can override this by placing your own .eslintrc.json with the rules you'd like to use. If you'd like to ignore specific files, you can use a .eslintignore file.
- Customizing Babel and Webpack configs
This plugin does not support customizing the Babel and Webpack configs, since serverless-webpack does a pretty good job with that. However, if you think the default config is missing some key features, feel free to open an issue about it.
- Open a new issue if you've found a bug or have some suggestions.
- Or submit a pull request!
To run this project locally, clone the repo and initialize the project.
` bash`
$ git clone https://github.com/AnomalyInnovations/serverless-bundle
$ cd serverless-bundle
$ npm install
Run the tests using.
` bash`
$ npm test
To test the serverless-bundle test command.
` bash`
$ npm run test-scripts
To install locally in another project.
` bash``
$ npm install /path/to/serverless-bundle
This plugin would not be possible without the amazing serverless-webpack plugin and the ideas and code from Create React App.
---
This plugin is maintained by Anomaly Innovations; makers of Seed and Serverless Stack.