Javascript 如何从gatsby目录节点动态创建zip存档
我有一堆目录,用作gatsby节点,并从这些目录生成页面,如: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
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了?