mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2025-12-19 10:07:46 -05:00
107 lines
2.5 KiB
JavaScript
107 lines
2.5 KiB
JavaScript
const path = require('path');
|
|
const envData = require('./config/env.json');
|
|
const {
|
|
buildChallenges,
|
|
replaceChallengeNodes,
|
|
localeChallengesRootDir
|
|
} = require('./utils/build-challenges');
|
|
const { pathPrefix } = require('./utils/gatsby/path-prefix');
|
|
|
|
const { curriculumLocale, homeLocation } = envData;
|
|
|
|
const curriculumIntroRoot = path.resolve(__dirname, './src/pages');
|
|
|
|
module.exports = {
|
|
flags: {
|
|
DEV_SSR: false
|
|
},
|
|
siteMetadata: {
|
|
title: 'freeCodeCamp',
|
|
siteUrl: homeLocation
|
|
},
|
|
pathPrefix: pathPrefix,
|
|
plugins: [
|
|
'gatsby-plugin-pnpm',
|
|
{
|
|
resolve: 'gatsby-plugin-webpack-bundle-analyser-v2',
|
|
options: {
|
|
analyzerMode: 'disabled',
|
|
generateStatsFile: process.env.CI
|
|
}
|
|
},
|
|
'gatsby-plugin-react-helmet',
|
|
{
|
|
resolve: 'gatsby-plugin-postcss',
|
|
options: {
|
|
postcssOptions: {
|
|
config: path.resolve(__dirname, 'postcss.config.js')
|
|
}
|
|
}
|
|
},
|
|
{
|
|
resolve: 'gatsby-plugin-create-client-paths',
|
|
options: {
|
|
prefixes: [
|
|
'/certification/*',
|
|
'/unsubscribed/*',
|
|
'/user/*',
|
|
'/settings/*',
|
|
'/n/*'
|
|
]
|
|
}
|
|
},
|
|
{
|
|
resolve: require.resolve(
|
|
'../tools/client-plugins/gatsby-source-challenges'
|
|
),
|
|
options: {
|
|
name: 'challenges',
|
|
source: buildChallenges,
|
|
onSourceChange: replaceChallengeNodes(curriculumLocale),
|
|
curriculumPath: localeChallengesRootDir
|
|
}
|
|
},
|
|
{
|
|
resolve: 'gatsby-source-filesystem',
|
|
options: {
|
|
name: 'introductions',
|
|
path: curriculumIntroRoot
|
|
}
|
|
},
|
|
{
|
|
resolve: 'gatsby-transformer-remark'
|
|
},
|
|
{
|
|
resolve: require.resolve(
|
|
'../tools/client-plugins/gatsby-remark-node-identity'
|
|
),
|
|
options: {
|
|
identity: 'blockIntroMarkdown',
|
|
predicate: ({ frontmatter }) => {
|
|
if (!frontmatter) {
|
|
return false;
|
|
}
|
|
const { title, block, superBlock } = frontmatter;
|
|
return title && block && superBlock;
|
|
}
|
|
}
|
|
},
|
|
{
|
|
resolve: require.resolve(
|
|
'../tools/client-plugins/gatsby-remark-node-identity'
|
|
),
|
|
options: {
|
|
identity: 'superBlockIntroMarkdown',
|
|
predicate: ({ frontmatter }) => {
|
|
if (!frontmatter) {
|
|
return false;
|
|
}
|
|
const { title, block, superBlock } = frontmatter;
|
|
return title && !block && superBlock;
|
|
}
|
|
}
|
|
},
|
|
'gatsby-plugin-remove-serviceworker'
|
|
]
|
|
};
|