Javascript 如何从gatsby目录节点动态创建zip存档

Javascript 如何从gatsby目录节点动态创建zip存档,javascript,node.js,graphql,gatsby,Javascript,Node.js,Graphql,Gatsby,我有一堆目录,用作gatsby节点,并从这些目录生成页面,如: exports.createPages = async ({ graphql, actions }) => { const { createPage } = actions const result = await graphql(` query DosboxQuery { allDirectory(filter: {sourceInstanceName: {eq: "dosbox"} name

我有一堆目录,用作gatsby节点,并从这些目录生成页面,如:

exports.createPages = async ({ graphql, actions }) => {
  const { createPage } = actions
  const result = await graphql(`
query DosboxQuery {
  allDirectory(filter: {sourceInstanceName: {eq: "dosbox"} name: {ne: "dosbox"}}) {
    edges {
      node {
        name
        dir
        modifiedTime
        children {
        __typename ... on File{
            name
            relativePath
          }
        }
    }
  }
}
  `)

  result.data.allDirectory.edges.forEach(({ node }) => {
    console.log("directory node", node);
    createPage({
      path: `/${node.name}/`,
      component: path.resolve(`./src/templates/game-page.js`),
      context: {
        slug: `/${node.name}/`,
      },
    })
  })
  console.log(JSON.stringify(result, null, 4))
}
我想生成这些目录的
zip
存档,用户可以从页面下载。我不想存储或提交
zip
存档,因为目录的内容可能会更改,所以我想在gatsby构建时创建zip存档。我可能可以使用npm模块来创建zip档案


我不知道如何将zip档案集成到盖茨比基础设施中。我可以更新
onCreateNode
createPages
来创建拉链。我应该把拉链写进公用文件夹吗?我可以将拉链存储为盖茨比节点上的缓冲区吗?

看起来您知道答案。。。没时间去PoC了?