Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk mengabaikan keseluruhan folder dalam kaedah Next.js dalam aplikasi?

Untuk 13 hari seterusnya, folder app/api akan menjana ralat semasa proses binaan apabila nextConfig.output ialah "eksport".

Dalam projek saya, saya memerlukan jenis binaan yang berbeza berdasarkan pembolehubah persekitaran.

Adakah terdapat cara untuk mengabaikan folder "api" semasa proses binaan apabila "output" ialah "eksport"?

Apabila saya menjalankan binaan menggunakan nextConfig.output sebagai "eksport" saya mendapat ralat berikut:

Eksport mengalami ralat pada laluan berikut: /api/revalidate/route: /api/revalidate

fail src/app/api/revalidate/route.ts

import { NextRequest, NextResponse } from 'next/server';
import { revalidateTag } from 'next/cache';
 
export async function GET(request: NextRequest) {
  const tag = request.nextUrl.searchParams.get('tag');
  if(tag){
    revalidateTag(tag);
  }
  return NextResponse.json({ revalidated: true, now: Date.now() });
}

Next.config.js

/** @type {import('next').NextConfig} */
const nextConfig = {
  output: process.env.NEXT_OUTPUT_MODE,
};

module.exports = nextConfig;

Repositori Boleh Disalin

Berikut ialah repositori untuk menghasilkan semula ralat ini https://github.com/zeckaissue/next-export-api-crash

P粉682987577P粉682987577294 hari yang lalu490

membalas semua(2)saya akan balas

  • P粉662361740

    P粉6623617402023-12-31 10:31:51

    Anda boleh menggunakan pilihan abaikan dalam fail konfigurasi Next.js (next.config.js). Anda mesti mencipta fail konfigurasi jika anda belum melakukannya. Buka fail next.config.js dan tambah kod berikut:

    module.exports = {
      webpack: (config, { isServer }) => {
        if (!isServer) {
          config.module.rules.push({
            test: /YOUR FOLDER NAME\/.*/,
            loader: 'ignore-loader',
          });
    }

    balas
    0
  • P粉321584263

    P粉3215842632023-12-31 00:13:46

    Saya menemui penyelesaian untuk ignore-loader. Tetapi mungkin ada cara yang lebih baik untuk mencapai matlamat saya melalui fungsi terbina dalam next.js

    Ini adalah kemas kini saya seterusnya.config.js

    /** @type {import('next').NextConfig} */
    const nextConfig = {
      output: process.env.NEXT_OUTPUT_MODE,
      /**
       *
       * @param {import('webpack').Configuration} config
       * @param {import('next/dist/server/config-shared').WebpackConfigContext} context
       * @returns {import('webpack').Configuration}
       */
      webpack: (config) => {
        if (process.env.NEXT_OUTPUT_MODE !== "export" || !config.module) {
          return config;
        }
        config.module.rules?.push({
          test: /src\/app\/api/,
          loader: "ignore-loader",
        });
        return config;
      },
    };
    
    module.exports = nextConfig;
    
    

    balas
    0
  • Batalbalas