reactjs - Ingen Next.js-version kunde upptäckas i ditt projekt. Se till att `"next"` är installerad i "dependencies" eller "devDependencies"


Jag försöker distribuera en Next-app med Vercel CLI. Jag har kört vercel build och det slutfördes framgångsrikt utan några fel - kontexten ges nedan. Jag har kört vercel deploy --prebuilt-kommandot och det distribuerades utan några fel. När jag försöker flytta projektet från förhandsgranskningsmiljön till produktionsmiljön får jag ett fel

Error: No Next.js version could be detected in your project. Make sure `"next"` is installed in "dependencies" or "devDependencies"

detta är min package.json

{
  "name": "portfolio-website",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "@heroicons/react": "^2.0.12",
    "@next/swc-darwin-x64": "^12.3.2",
    "framer-motion": "^7.6.2",
    "next": "^12.2.4",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-hook-form": "^7.38.0",
    "react-simple-typewriter": "^4.0.5",
    "react-social-icons": "^5.15.0"
  },
  "devDependencies": {
    "@types/node": "18.11.7",
    "@types/react": "18.0.24",
    "@types/react-dom": "18.0.8",
    "autoprefixer": "^10.4.12",
    "eslint": "8.26.0",
    "eslint-config-next": "13.0.0",
    "postcss": "^8.4.18",
    "tailwind-scrollbar": "^2.0.1",
    "tailwindcss": "^3.2.1",
    "typescript": "4.8.4"
  },
  "optionalDependencies": {
    "@next/swc-linux-x64-gnu": "12.3.2"
  }
}

Jag hade också felet - för sammanhanget

warn  - Attempted to load @next/swc-darwin-x64, but it was not installed
error - Failed to load SWC binary for darwin/x64, see more info here: https://nextjs.org/docs/messages/failed-loading-swc
info  - Creating an optimized production build .Error: Command "npm run build" exited with 

Jag var tvungen att radera min package.lock.json-fil och node_modules och köra npm i @next/swc-darwin-x64 och npm i även om beroendet vid den tiden redan fanns i min lock-fil.

Jag har också försökt att nedgradera min nästa version men utan resultat.

Har försökt distribuera direkt från mitt git-förråd men jag får också samma fel

[22:29:17.748] Cloning github.com/xxxxx/xxxxxx (Branch: main, Commit: 0fb5a5a)
[22:29:18.540] Cloning completed: 791.508ms
[22:29:19.131] Looking up build cache...
[22:29:19.371] Build Cache not found
[22:29:19.420] Running "vercel build"
[22:29:20.057] Vercel CLI 28.4.12-05a80a4
[22:29:20.485] Installing dependencies...
[22:29:21.273] npm ERR! code EBADPLATFORM
[22:29:21.275] npm ERR! notsup Unsupported platform for @next/[email : wanted {"os":"darwin","arch":"x64"} (current: {"os":"linux","arch":"x64"})
[22:29:21.276] npm ERR! notsup Valid OS:    darwin
[22:29:21.276] npm ERR! notsup Valid Arch:  x64
[22:29:21.276] npm ERR! notsup Actual OS:   linux
[22:29:21.276] npm ERR! notsup Actual Arch: x64
[22:29:21.279] 
[22:29:21.279] npm ERR! A complete log of this run can be found in:
[22:29:21.279] npm ERR!     /vercel/.npm/_logs/2022-11-02T21_29_20_898Z-debug-0.log
[22:29:21.290] Warning: Could not identify Next.js version, ensure it is defined as a project dependency.
[22:29:21.364] Error: No Next.js version could be detected in your project. Make sure `"next"` is installed in "dependencies" or "devDependencies"

Svar #1

Jag stötte på detta och löste det genom att rensa det jag hade lagt i inställningen "Root Directory" i min Vercel-konfiguration.

Jag felsökte något annat och hade ställt in det på "src", vilket fick detta att börja dyka upp. När jag satte tillbaka det till inget fungerade distributionerna igen

Svar #2

Det händer vanligtvis eftersom Vercel inte kan hitta dina filer om du har all kod i en underkatalog och inte i rotkatalogen. till exempel: my-app > my-app-real > package.json

Vercel kommer bara att kontrollera den yttre katalogen (my-app) och därför kasta ett fel.

Du kan fixa detta genom att gå till Vercel-instrumentpanelen för ditt projekt > Inställningar > Allmänt > Rotkatalog > (skriv namnet på undermappen som innehåller all kod, för ovanstående exempel skulle jag skriva: my-app-real)

Detta kommer att lösa problemet! Hoppas detta hjälper.

Relaterade artiklar