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