@ryaninvents/plugin-bundle-nextjs
v1.0.0
Published
Plugin for @pika/pack to package a Next.js app for AWS Lambda
Downloads
3
Readme
@ryaninvents/plugin-bundle-nextjs
Plugin for @pika/pack to package a Next.js app for AWS Lambda
Why would I want this?
This package creates a zip file containing source and built assets for a Next.js app. After the build step runs, the zip file will be available in ./pkg/dist-next.zip
.
I built this package because I wanted to build an AWS Lambda function source zip using Pika Pack.
Produced bundle
The ZIP file that this builder produces contains the following files:
package.json
after Pika transformationsindex.js
-- contents are fromdist-node/index.js
next.config.js
if it exists- All content under
pages/**
, with no transformation - Pre-built Next assets from
.next/**
- Other content specified via
sources
option
Note: Your lambda's entry point will always be
index.js
, irrespective of the original filename.
Installation
Use the package manager npm to install @ryaninvents/plugin-bundle-nextjs
.
npm install --save-dev @ryaninvents/plugin-bundle-nextjs
Then, modify your @pika/pack
configuration in your package.json
to enable:
{
"@pika/pack": {
"pipeline": [
["@ryaninvents/plugin-bundle-nextjs"]
]
}
}
For more details on setting up Pack, refer to the @pika/pack repository. To learn about options for plugin-bundle-nextjs
, keep reading.
Options
distDir
Default value:
".next"
If you've set a custom build directory for your Next.js project, update the value here to match.
{
"@pika/pack": {
"pipeline": [
["@ryaninvents/plugin-bundle-nextjs", {
"distDir": "build"
}]
]
}
}
sources
Extra content from your top-level project which must be included as-is in your project.
{
"@pika/pack": {
"pipeline": [
["@ryaninvents/plugin-bundle-nextjs", {
"sources": ["components/**", "layouts/**"]
}]
]
}
}
nextBuildScript
Default value:
"build"
This package assumes you've configured your package so that npm run build
will run the "next build"
step. If this is not true, use this option to point to another npm script.
{
"@pika/pack": {
"pipeline": [
["@ryaninvents/plugin-bundle-nextjs", {
"nextBuildScript": ["build:nextjs"]
}]
]
}
}
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.