bazelbuild / bazelbuild/examples
[FR] demonstrate Next.js example with output: "standalone"
- 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
Assessment
This issue has not been assessed yet.