npm构建到两个dist文件夹

时间:2020-04-06 11:28:28

标签: javascript node.js npm gatsby

我有一个Gatsbyjs项目,我正尝试构建到两个不同的文件夹publicproduction中。

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

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

1 个答案:

答案 0 :(得分:1)

尽管这不是一个共同的目的,但您可以通过Gatsby API(gatsby-node.js)来改变您的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的形式输出。

有用的GitHub问题:

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

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