无法将Next.js应用部署到GAE,无法找到“pages”文件夹构建错误

fumotvh3  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(256)

我正在做一个去年首次部署到GAE的项目;在使用gcloudCLI和app.yaml文件进行部署时,我没有遇到问题
现在,我需要添加一个新的页面到应用程序,只是文为它,创建了新的页面文件夹/newpage和一个index.tsx文件,当我完成我运行我的项目进行测试,并运行一个构建准备部署
当我运行deploy命令时,CLI显示以下错误:

Build error occurred
Error: > Couldn't find a `pages` directory. Please create one under the project root
    at Object.findPagesDir (/workspace/node_modules/next/dist/lib/find-pages-dir.js:86:19)
    at /workspace/node_modules/next/dist/build/index.js:103:63
    at async Span.traceAsyncFn (/workspace/node_modules/next/dist/trace/trace.js:79:20)
    at async Object.build [as default] (/workspace/node_modules/next/dist/build/index.js:66:29)

字符串
这是我从项目开始的项目结构

.next
build
components
models
node_modules
pages
public
services
styles
.gcloudignore
app.yaml
next.config.js
package.json
tsconfig.json


上次部署后文件夹结构未发生更改
我发现了构建脚本的建议,但在部署任务期间构建时的错误仍然相同
我只是对package.json上的构建脚本执行此操作

"scripts": {
    "dev": "next dev",
    "build": "rm -rf ./build && NODE_ENV=production next build",
    "start": "next start -p 8080",
    "deploy": "npm run build && gcloud app deploy"


使用“rm”命令删除构建文件夹并创建一个新文件夹,并在每次调用构建命令时强制NODE_ENV进入生产环境,但仍然出现相同的错误
这是next.config.js代码

const nextConfig = {
    reactStrictMode: true,
    distDir: "build",
};

module.exports = nextConfig;


这是我在项目开始时创建的app.yaml代码,用于deploy命令

env: standard
runtime: nodejs14
instance_class: F1
service: panel
inbound_services:
   - warmup
automatic_scaling:
   min_idle_instances: 1
   min_instances: 1
handlers:
   - url: /.*
     secure: always
     script: auto
env_variables:
   NEXT_PUBLIC_MAPS_API_KEY: xxxx

dgjrabp2

dgjrabp21#

... * 从评论移动到答案以更容易发现 *...
2023年4月11日发布的版本对Nodejs应用程序进行了突破性的更改
对于使用Node.js运行时的所有服务,如果您在package.json文件中定义了npm构建脚本,则npm run build现在会在部署期间自动运行。
如果您不希望它运行构建,那么将"gcp-build":""添加到package.json文件的scripts部分/节

相关问题