Open jbool24 opened 5 months ago
Hi, been using pnpm monorepos with nuxt3 layers for a long time. No issues there. Didn't use netlify.toml. This is my config though I think you can try removing the base directory and mimic what I've done in the screenshot. Here's my folder structure:
- packages/
- design-system
- global
package.json
pnpm-workspace.yml
@Rigo-m Do each of your packages contain their own package.json
or are all dependencies shared at the top level in node_modules
?
I still think there was a small issue in presets/netlify.ts
which I think @serhalp has started working on this as v2 preset
I both have shared dependencies and specific package.json. Nuxt should be in the package.json file of your package (app_dir).
To my understanding, there are zero problems with the "old" netlify preset. We have at least half a dozen websites being served by nuxt3+pnpm monorepo+netlify combo. I am 99.99% sure yours is a configuration issue. If you want to dwell deeper on this issuse hit me on twitter.
@Rigo-m Sorry for the long gap. Got busy for the last couple months. I would love to know what you think the config issues are but sadly I do not pay for twitter/x so I can 't direct message. You said you do not use a toml file to config correct, only the web portal? Perhaps that's my problem. I usually use a toml for netlify deployment so the configs are checked in to repo for tracking. Although in the past I have not attempted to setup a monorepo so this never happened.
Environment
Operating System: Linux Node Version: v18.18.0 // <--- using v20 in prod but this doesn't change the outcomes described Nuxt Version: 3.11.2 CLI Version: 3.11.1 Nitro Version: 2.9.6 Package Manager: pnpm@8.15.6 Builder: - User Config: sourcemap, typescript, experimental, modules, nitro, routeRules, site, sitemap Runtime Modules: @nuxt/ui@2.15.2, @nuxt/content@2.12.1, @nuxtjs/sitemap@5.1.4, nuxt-og-image@3.0.0-rc.52 Build Modules: -
Reproduction
Cannot repoduce in stackblitz due to wasm env but a repo is available here https://github.com/jbool24/nuxt-netlify-deploy
Describe the bug
There are issues when deploying to Netlfiy with a mono repo.
Intention:
To deploy from a mono repo that is structured with N number of Nuxt3 projects. All projects are top level and there would be a
./layers
dir top level as well to author shared local layers between projects. Currently this is achieved with pnpm workspaces. Any project may iterate over time and "may" have split handling usingrouteRules
. At the current state of this setup only static files are generated for deployment with the intention of adding CMS based dynamic routes over time to the Nuxt app. As its is setup right now this issue has two parts that seem to surface which seem like a bug:Current state:
When using a mono repository setup with Netlify presets (should be zero config) as output for nitro some strange things happen:
{{MONO_REPO_ROOT}}/app_dir/app_dir/.netlify/functions-internal
created within the existing{{MONO_REPO_ROOT}}/app_dir
however nothing is output here. This is also incorrect as it should instead be inside{{MONO_REPO_ROOT}}/app_dir/.netlify
folder that already exists in the nuxt project's root. Even though the end result of the build process outputs a server directory (and assets) in the correct{{MONO_REPO_ROOT}}/app_dir/.netlify/functions-internal/server
directory._redirect
into the dist directory for Netlify use in deployment. When a simple deployment prerenders some pages with route rules and also using the sitemap and the (seo module)[https://nuxt.com/modules/seo] the redirects for sitemap routes instruct netlify with the following:Additional context
Relates to https://github.com/nuxt/nuxt/issues/27026
As Netlify docs instruct for monorepos, a project level
netlify.toml
should specify the base for use during deployment. In theory, Netlify may be able to auto detect a monorepo but there would be a requirement to also build deps from a top level "layers" shared between nuxt projects so we specify abase
dirThe following are relative logs from the Nuxt build process triggered by Netlfiy cli using
ntl serve
to debug/preview a deployment. This is run from the mono-repo root.Tail end of netlify build process and dev server logs (Notice the redirect to non-existing file path. No functions deployed at current state of the Nuxt project with static only routes except
sitemap.xml
sLogs
No response