在构建命令中指定 Next.js 构建目录?

Rec*_*con 3 reactjs next.js

最初,我将 distDir 设置为 Firebase Functions 目录中的一个文件夹进行部署,但是,在开发模式下运行应用程序时,React 的重复导致了一些错误,因此我不得不将其注释掉。

有没有办法next build在命令中指定命令输出目录?喜欢next build dir='../functions/next'

或者有没有办法将开发构建目录(来自命令)与配置中的next生产构建( )分开?next build

buk*_*kso 6

我找到了以下解决方案来解决这个问题:

您可以设置自定义环境变量来决定构建的生成位置:

BUILD_DIR=myBuilds/buildXYZ yarn build
Run Code Online (Sandbox Code Playgroud)

或者

BUILD_DIR=myBuilds/buildXYZ npm build
Run Code Online (Sandbox Code Playgroud)

在 next.config.js 中,您可以像这样使用环境变量:

module.exports = {
  distDir: process.env.BUILD_DIR || '.next',
}
Run Code Online (Sandbox Code Playgroud)

myBuilds/buildXYZ现在您的构建将在变量中定义的目录中动态生成BUILD_DIR

需要注意的一件事:如果您想使用该next export命令(或使用构建目录的任何其他命令),您还应该在其前面添加环境变量,例如:

BUILD_DIR=myBuilds/buildXYZ yarn export
Run Code Online (Sandbox Code Playgroud)

  • ENV" 必须小写。 module.exports = { distDir: process.env.BUILD_DIR || '.next', } (3认同)