web-dev-qa-db-ja.com

NextJSは、「。next」ディレクトリで有効なビルドを見つけることができません

私はこれを尋ねる前に次の質問を見ましたが、Dockerを使用していないので私のものは違うと思います: Nextjsは本番node_envの '.next'ディレクトリで有効なビルドを見つけることができません

'.next'フォルダーを削除する this アプローチも試しましたが、それでも同じ問題が発生します。

他の多くの問題を修正した後、私は解決できないように思われる問題に行き着きました。 Herokuにデプロイしようとすると、次のエラーが発生し続けます。

node server.js

Could not find a valid build in the '.next' directory! Try building your app with 'next build' before starting the server.

これが私のpackage.jsonファイルです:

{
  "name": "StarterApp",
  "version": "1.0.0",
  "engines": {
    "node": "10.4.1"
  },
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "mocha",
    "dev": "node server.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "4.16.3",
    "fs-extra": "^5.0.0",
    "ganache-cli": "^6.1.3",
    "mocha": "^5.2.0",
    "next": "^4.2.3",
    "next-routes": "^1.4.2",
    "node-gyp": "^3.7.0",
    "react": "^16.4.1",
    "react-dom": "^16.4.1",
    "rebuild": "^0.1.2",
    "semantic-ui-css": "^2.3.2",
    "semantic-ui-react": "^0.79.1",
    "sha3": "^1.2.2",
    "solc": "^0.4.24",
    "truffle-hdwallet-provider": "0.0.3",
    "web3": "^1.0.0-beta.34"
  }
}

Server.jsファイル:

const { createServer } = require('http');
const next = require('next');

const app = next({
  dev: process.env.NODE_ENV !== 'production'
});

const routes = require('./routes');
const handler = routes.getRequestHandler(app);

app.prepare().then(() => {
  createServer(handler).listen(5000, (err) => {
    if (err) throw err;
    console.log('Ready on localhost:5000');
  });
});

アプリはローカルで問題なくデプロイされますが、Herokuにデプロイするとこのエラーが発生します。私は何が間違っているのですか?

6
Captain Kirk

NextJSの構築may be(プロジェクトのサイズによって異なります)、非常に大きく、デプロイ時にコストがかかる可能性があります。 package.jsonに以下を適用できます

{
    "script": {
        "build": "next build",
        "heroku-postbuild": "npm run build",
        "start": "next start"
    }
}
1
cr05s19xx
npm run build

その後

npm run start

私の問題を解決しました。

0
Mahendra Pratap