使用Next.js创建的app部署到netlify时,出现如下错误,部署失败。
────────────────────────────────────────────────────────────────
6. Deploy site
────────────────────────────────────────────────────────────────
────────────────────────────────────────────────────────────────
Configuration error
────────────────────────────────────────────────────────────────
Error message
Deploy did not succeed: Deploy directory 'out' does not exist
Resolved config
build:
command: yarn build
commandOrigin: config
publish: /opt/build/repo/out
plugins:
- inputs: {}
origin: config
package: '@netlify/plugin-nextjs'
- inputs: {}
origin: config
package: netlify-plugin-cache-nextjs
Caching artifacts
Started saving node modules
Finished saving node modules
Started saving build plugins
Finished saving build plugins
Started saving yarn cache
Finished saving yarn cache
Started saving pip cache
Finished saving pip cache
Started saving emacs cask dependencies
Finished saving emacs cask dependencies
Started saving maven dependencies
Finished saving maven dependencies
Started saving boot dependencies
Finished saving boot dependencies
Started saving rust rustup cache
Finished saving rust rustup cache
Started saving go dependencies
Finished saving go dependencies
Build failed due to a user error: Build script returned non-zero exit code: 2
Failing build: Failed to build site
Failed during stage 'building site': Build script returned non-zero exit code: 2
Finished processing build request in 1m25.310488139s
各种文件和设置如下所示。
netlify.toml
[build]
command = "yarn build"
publish = "out"
[[plugins]]
package = "@netlify/plugin-nextjs"
[[plugins]]
package = "netlify-plugin-cache-nextjs"
package.json
...
"scripts": {
"dev": "next",
"build": "next build",
"start": "next start",
"export": "next export"
},
...
各种设置基于以下页面。
如果你知道如何解决这个问题,请告诉我。
我愿意接受任何想法。
答案 0 :(得分:6)
此外,您可能需要将 target: 'serverless'
添加到您的 next.config.js
文件中。
答案 1 :(得分:3)
我之前没有将 Nextjs 与 Netlify 一起使用,但我认为 Next 的默认构建目录是 .next
。这可能是您的部署失败的原因。但是,您可以为构建使用自定义目标。
module.exports = {
distDir: 'out',
}
参考https://nextjs.org/docs/api-reference/next.config.js/setting-a-custom-build-directory
答案 2 :(得分:2)
您在 yarn export
文件中的构建命令中缺少 netlify.toml
。由于未调用 next export
,因此 out/
文件夹将不存在。
[build]
command = "yarn build && yarn export"
publish = "out"
...