You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在本地退出Next.js 13实验性App目录?修改配置后报错

问题:如何退出Next.js 13的实验性App目录功能?

我在开发真实项目时测试Next.js 13的新App目录,遇到图片、字体无法正常加载的问题,想停止使用这个实验性目录,不需要重新安装next-app,能不能在本地退出该功能?

我的next.config.js配置如下:

/** @type {import('next').NextConfig} */
const path = require("path");

const nextConfig = {
  experimental: {
    appDir: true,
  },
  sassOptions: {
    includePaths: [path.join(__dirname, "styles")],
  },
  reactStrictMode: true,
  images: {
    loader: "akamai",
    path: "/",
  },
};

module.exports = nextConfig;

将appDir设为false时,我遇到如下错误:

Error: > The `app` directory is experimental. To enable, add `appDir: true` to your `next.config.js` configuration under `experimental`. See https://nextjs.org/docs/messages/experimental-app-dir-config
    at Object.findPagesDir (C:\Users\Favour\OneDrive\Documents\Code School\WebDevelopment\Projects\ecommerce\frontend\node_modules\next\dist\lib\find-pages-dir.js:80:19)
    at DevServer.getRoutes (C:\Users\Favour\OneDrive\Documents\Code School\WebDevelopment\Projects\ecommerce\frontend\node_modules\next\dist\server\dev\next-dev-server.js:141:59)
    at new Server (C:\Users\Favour\OneDrive\Documents\Code School\WebDevelopment\Projects\ecommerce\frontend\node_modules\next\dist\server\base-server.js:115:47)
    at new NextNodeServer (C:\Users\Favour\OneDrive\Documents\Code School\WebDevelopment\Projects\ecommerce\frontend\node_modules\next\dist\server\next-server.js:73:9)
    at new DevServer (C:\Users\Favour\OneDrive\Documents\Code School\WebDevelopment\Projects\ecommerce\frontend\node_modules\next\dist\server\dev\next-dev-server.js:100:9)
    at NextServer.createServer (C:\Users\Favour\OneDrive\Documents\Code School\WebDevelopment\Projects\ecommerce\frontend\node_modules\next\dist\server\next.js:152:24)
    at C:\Users\Favour\OneDrive\Documents\Code School\WebDevelopment\Projects\ecommerce\frontend\node_modules\next\dist\server\next.js:165:42
    at async NextServer.prepare (C:\Users\Favour\OneDrive\Documents\Code School\WebDevelopment\Projects\ecommerce\frontend\node_modules\next\dist\server\next.js:134:24)
    at async Server.<anonymous> (C:\Users\Favour\OneDrive\Documents\Code School\WebDevelopment\Projects\ecommerce\frontend\node_modules\next\dist\server\lib\render-server.js:92:17) {
  type: 'Error'
}

解决方案

可以无需重新安装next-app退出该功能,按以下步骤操作:

  • 修改next.config.js,将experimental.appDir设为false,或者直接移除整个experimental.appDir配置项:
    /** @type {import('next').NextConfig} */
    const path = require("path");
    
    const nextConfig = {
      // 移除或注释掉这部分,或者设为false
      // experimental: {
      //   appDir: false,
      // },
      sassOptions: {
        includePaths: [path.join(__dirname, "styles")],
      },
      reactStrictMode: true,
      images: {
        loader: "akamai",
        path: "/",
      },
    };
    
    module.exports = nextConfig;
    
  • 核心操作:删除项目根目录下的app文件夹。Next.js会自动检测该文件夹的存在,强制要求开启App目录模式,所以必须删除它才能彻底退出实验性功能。
  • 确保项目中保留pages文件夹(若之前存在),如果已经删除,需要重新创建pages文件夹并添加必要页面(比如pages/index.js作为首页)。
  • 重启Next.js开发服务器,确保配置和文件变更生效。

内容的提问来源于stack exchange,提问作者Syre Musk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:42:19