Fixing netlify build (#888)

This commit is contained in:
Callum Macdonald 2020-09-10 20:27:22 +02:00 committed by GitHub
parent 43958025e7
commit b136a032ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 73 additions and 10 deletions

1
gatsby/.nvmrc Normal file
View File

@ -0,0 +1 @@
lts/erbium

View File

@ -30,7 +30,15 @@ module.exports = {
display: `minimal-ui`,
},
},
`gatsby-transformer-json`,
{
resolve: `gatsby-transformer-json`,
options: {
// NOTE: Without this setting, the JSON types are named based on the
// folder name. In the case of `content.json`, that depends on what the
// directory name of the repo is. In netlify's case, that's `repo`.
typeName: `jsonFile`,
},
},
{
resolve: `gatsby-source-filesystem`,
options: {

View File

@ -2,11 +2,14 @@
const path = require('path')
const crypto = require('crypto')
const Bluebird = require('bluebird')
const util = require('util')
// Set this to true to enable more logging in this file
const DEBUG = false
const isDev = process.env.NODE_ENV === 'development'
const jsonTypeName = `jsonFile`
/**
* Implement Gatsby's Node APIs in this file.
*
@ -17,10 +20,16 @@ const isDev = process.env.NODE_ENV === 'development'
exports.onCreateNode = async ({ node, actions }) => {
const { createNode } = actions
if (node.internal.type === 'OpenSourceIosAppsJson') {
if (node.internal.type === jsonTypeName) {
const { categories, projects } = node
categories.forEach(category => {
if (DEBUG) console.error('Found the json node #QE5PnL')
let createdCategoryCount = 0
let createdProjectCount = 0
await Bluebird.each(categories, async category => {
if (typeof category.id !== 'string' || category.id.length < 1) {
console.error('Invalid category #veJYyW', category)
return
@ -32,7 +41,7 @@ exports.onCreateNode = async ({ node, actions }) => {
project['category-ids'].includes(category.id),
).length
createNode({
await createNode({
...category,
slug: category.id,
parentSlug: category.parent,
@ -48,6 +57,8 @@ exports.onCreateNode = async ({ node, actions }) => {
content: JSON.stringify(category),
},
})
createdCategoryCount++
})
await Bluebird.each(projects, async project => {
@ -67,14 +78,60 @@ exports.onCreateNode = async ({ node, actions }) => {
content: JSON.stringify(project),
},
}
await createNode(projectNode)
createdProjectCount++
})
console.error(
'Created counts #WVIeFH',
createdCategoryCount,
createdProjectCount,
)
}
}
exports.createPages = async ({ actions, graphql }) => {
exports.createPages = async ({ actions, graphql, getNodesByType }) => {
const { createPage } = actions
if (DEBUG) {
const jsonNodes = getNodesByType(jsonTypeName)
const fileNodes = getNodesByType(`File`)
console.error(
'START createPages() #IMKm8p',
jsonNodes.length,
fileNodes.length,
)
const debugResult = await graphql(`
query Debugging {
allFile {
edges {
node {
id
internal {
type
}
relativePath
children {
id
internal {
type
}
}
}
}
}
}
`)
console.error(
'File nodes #bIMtXP',
util.inspect(debugResult.data, { depth: null }),
)
}
const categoryTemplate = path.resolve('src/templates/category.tsx')
const tagTemplate = path.resolve('src/templates/tag.tsx')

View File

@ -1,9 +1,6 @@
[[plugins]]
package = "netlify-plugin-gatsby-cache"
[build.environment]
SHARP_IGNORE_GLOBAL_LIBVIPS="true"
[build]
publish = "public/"
command = "yarn run build"
command = "head -n 2 ../contents.json && yarn run build"

View File

@ -30,6 +30,7 @@
"@material-ui/icons": "^4.9.1",
"@material-ui/styles": "^4.10.0",
"@reduxjs/toolkit": "^1.4.0",
"bluebird": "^3.7.2",
"deepmerge": "^4.2.2",
"gatsby": "^2.24.56",
"gatsby-plugin-manifest": "^2.4.28",
@ -55,7 +56,6 @@
"@types/redux": "^3.6.0",
"@typescript-eslint/eslint-plugin": "^4.1.0",
"@typescript-eslint/parser": "^4.1.0",
"bluebird": "^3.7.2",
"eslint": "^7.8.1",
"eslint-config-prettier": "^6.11.0",
"eslint-plugin-prettier": "^3.1.4",