bazelbuild / bazelbuild/examples

[FR] demonstrate Next.js example with output: "standalone"

Open
#382 4 comments 1 reaction 0 assignees View on GitHub
help wanted
Dominant language
Starlark
Stars
957
Forks
578
Avg merge
3d 22h
Merged PRs (30d)
1

Description

Thanks for putting together the Bazel Next.js example. Next.js support with Bazel is something I have been hoping for for a while.

I haven't found an easy way to deploy the generated artifacts on Vercel though, so I have been exploring open-next as an open-source alternative. Open-next requires building the next.js app though in "standalone" mode as far as I understand and that I have not been able to get to work with Bazel.

I updated the `next.config.js` to

```
/** @type {import('next').NextConfig} */
const nextConfig = {
output: "standalone",
reactStrictMode: true,
swcMinify: true,
// https://nextjs.org/docs/messages/export-image-api
images: {
unoptimized: true,
},
};

module.exports = nextConfig;
```

However when running `bazel build //next.js:next` the build fails with

```
Starting local Bazel server and connecting to it...
INFO: Analyzed target //next.js:next (194 packages loaded, 4178 targets configured).
ERROR: /home/chris/repos/examples/frontend/next.js/BUILD.bazel:21:5: Error while validating output TreeArtifact File:[[]bazel-out/k8-fastbuild/bin]next.js/.next : Failed to resolve relative path standalone/node_modules/is-even inside TreeArtifact /home/chris/.cache/bazel/_bazel_chris/6124436b433d4245c5b38797a7e77c15/execroot/_main/bazel-out/k8-fastbuild/bin/next.js/.next. The associated file is either missing or is an invalid symlink.
ERROR: /home/chris/repos/examples/frontend/next.js/BUILD.bazel:21:5: JsRunBinary next.js/.next failed: not all outputs were created or valid
Target //next.js:next failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 10.898s, Critical Path: 6.68s
INFO: 29 processes: 4 internal, 1 linux-sandbox, 24 local.
ERROR: Build did NOT complete successfully
```

Can someone point me in the right direction here?

Has anyone found an alternative way to deploy the bazel generated artifacts to either Vecel, AWS or GCP?

Thanks,
Cheers

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.