1.0.0 • Published 5 years ago

@ryaninvents/plugin-bundle-nextjs v1.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

@ryaninvents/plugin-bundle-nextjs

Plugin for @pika/pack to package a Next.js app for AWS Lambda

CircleCI build status View on npm GitHub repository License

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 transformations
  • index.js -- contents are from dist-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.

License

MIT