首页 > 解决方案 > npm 构建到两个 dist 文件夹

问题描述

我有一个 Gatsbyjs 项目,我正在尝试构建到 2 个不同的文件夹publicproduction.

public文件夹将用于开发目的。

我试过了npm build ./production。它正在构建到公用文件夹中。

标签: javascriptnode.jsnpmgatsby

解决方案


尽管这不是一个共同的目的,但您可以gatsby-node.js通过 Gatsby API ( onPostBuild) 实现这一目标:

const path = require("path")
const fs = require("fs")

exports.onPreInit = () => {
  if (process.argv[2] === "build") {
    fs.rmdirSync(path.join(__dirname, "dist"), { recursive: true })
    fs.renameSync(
      path.join(__dirname, "public"),
      path.join(__dirname, "public_dev")
    )
  }
}

    exports.onPostBuild = () => {
  fs.renameSync(path.join(__dirname, 'public'),
    path.join(__dirname, 'dist'), { overwrite: true })
      fs.renameSync(
        path.join(__dirname, "public_dev"),
        path.join(__dirname, "public")
      )
    }

/dist在上面的示例中,您将在运行gatsby build命令时输出 in 。

有用的 GitHub 问题:

  1. https://github.com/gatsbyjs/gatsby/issues/18975

  2. https://github.com/gatsbyjs/gatsby/issues/14703


推荐阅读