使用pnpm install --shamefully-hoist致Netlify上Nuxt3构建失败求助
Netlify构建Nuxt 3应用时Rollup无法解析"vue"依赖的解决方法
错误详情
12:30:30 PM: 1. Build command from Netlify app 12:30:30 PM: ──────────────────────────────────────────────────────────────── 12:30:30 PM: 12:30:30 PM: $ npm run build 12:30:31 PM: > build 12:30:31 PM: > nuxt build 12:30:31 PM: [log] Nuxi 3.0.0 12:30:31 PM: [log] Nuxt 3.0.0 with Nitro 1.0.0 12:30:31 PM: [info] [nuxt:tailwindcss] Using default Tailwind CSS file from runtime/tailwind.css 12:30:32 PM: [error] [vite]: Rollup failed to resolve import "vue" from "node_modules/.pnpm/nuxt@3.0.0/node_modules/nuxt/dist/app/entry.mjs". 12:30:32 PM: This is most likely unintended because it can break your application at runtime. 12:30:32 PM: If you do want to externalize this module explicitly add it to 12:30:32 PM: `build.rollupOptions.external
问题原因
使用pnpm install --shamefully-hoist替代npm安装依赖,依赖的提升方式不符合Netlify构建环境预期,导致Rollup无法正确定位vue依赖。
解决步骤
- 项目根目录新建或编辑
netlify.toml配置文件,写入以下内容:
[build] command = "pnpm run build" publish = ".output/public" [context.production.environment] NODE_ENV = "production" [functions] node_bundler = "esbuild" [dev] command = "pnpm run dev"
- 配置Netlify环境变量:
- 进入Netlify项目的「站点设置」→「构建与部署」→「环境」
- 添加环境变量
NPM_CONFIG_USERCONFIG,值设为.npmrc
- 项目根目录创建
.npmrc文件,添加一行:shamefully-hoist=true - 重新触发Netlify构建流程
内容的提问来源于stack exchange,提问作者Etep
相关产品推荐
相关产品推荐

