Closed jbool24 closed 9 months ago
Would you check to see if you have multiple versions of Vue installed in your lockfile?
Would you be able to provide a reproduction? 🙏
Would you check to see if you have multiple versions of Vue installed in your lockfile?
@danielroe Yes. It looks like I do, but one is marked as Dev. What would cause this? Dep mismatch?
/vue@3.3.11(typescript@5.3.3):
resolution: {integrity: sha512-d4oBctG92CRO1cQfVBZp6WJAs0n8AK4Xf5fNjQCBeKCvMI1efGQ5E3Alt1slFJS9fZuPcFoiAiqFvQlv1X7t/w==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
'@vue/compiler-dom': 3.3.11
'@vue/compiler-sfc': 3.3.11
'@vue/runtime-dom': 3.3.11
'@vue/server-renderer': 3.3.11(vue@3.3.11)
'@vue/shared': 3.3.11
typescript: 5.3.3
/vue@3.3.4:
resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==}
dependencies:
'@vue/compiler-dom': 3.3.4
'@vue/compiler-sfc': 3.3.4
'@vue/runtime-dom': 3.3.4
'@vue/server-renderer': 3.3.4(vue@3.3.4)
'@vue/shared': 3.3.4
dev: true
@jbool24 It can be caused by package manager behaviour. You can use resolutions/overrides to ensure you have just one version.
@danielroe I've not dealt with overrides much. I don't directly depend on Vue in my package.json
. I'm only using whatever Vue version is spec'd as a peer-dep of Nuxt and Nuxt-modules, how do I enforce only a single package using pnpm for package management? Can you point me in the right direction?
Also for future debugging, does this 2 package discrepancy occur because of bundle time operations? Does it confuse the bundler? I'm trying to have a deeper understanding of all the bundle time transpilation with nuxt in relation to deploy targets.
@danielroe this fixed the deployment to Netlify. Not sure which packages caused the mismatch but closing this issue.
For others that might get this while upgrading different nuxt-modules, adding an override into package.json like below will force a single instance of Vue and this resolves the runtime issues.
more info for others pnpm overrides
# added to package.json
"pnpm": {
"overrides": {
"vue": "^3.3.13" # add the appropriate version you are expecting
}
},
Environment
❯ pnpm nuxi info
[2:27:16 PM] Nuxt project info:
Build Modules: -
Reproduction
Deploy a nuxt3 project with zero-config defaults to Netlify. Get a 500 server error from AWS Lambda function that
vue/server-renderer
is missing at runtime.Describe the bug
To be honest, I don't even know where to start. I'm not sure if this is a Nuxt build-time issue where the package is not hoisted correctly into the bundled directory for Netlify functions or if the issue is Netlify the way they require ESM. The latter seemed to be something they "foo barred" before and reported as fixed more info I found here
Using Nuxt/Netlify Locally
Everything builds as expected with no errors. The project is using
pnpm build
where the npm script is"build": "nuxi build"
as the build command for netlify. I can runnuxi dev
locally and the site works; I can also runntl dev
and everything works.If I run
ntl serve
the build fails with issues once thelamdalocal.js
server is launched (controlled by netlify-cli).Netlify Runtime
As the CI deployment runs, we see no errors in the build logs on Netlify. The site completes and deploys to the CDN and Netlify Functions to AWS. All that works smoothly, but when trying to access the page at runtime, we see AWS errors for missing external packages.
Additional context
The specific Nuxt3 project I'm running here is a modified version of https://github.com/directus-community/agency-os. However, the modifications I made are only to the components and nothing else at this time.
I'm still trying to get it deployed as is to sanity-check continuous deployment to Netlify.
Logs