我有一个Gatsbyjs项目,我正尝试构建到两个不同的文件夹public
和production
中。
public
文件夹将用于开发目的。
我已经尝试过npm build ./production
。它正在构建到公用文件夹中。
答案 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问题: