"Not building properly" meaning "not finishing building at all". I've set up a very basic blog project with dynamic SSR which fetches data from the Notion-API to generate static blog pages. Everything works fine when I'm running it in next dev
- however when trying to build the project, it runs into an endless loop without any errors shown.
One thought I had was the following:
If I understand the sequence of everything correctly, Next.js already tries building the static sites during next build
. The dynamic site generation relies on an API that I have also coded within the same project, which forwards requests to Notion in order to obfuscate secrets. Obviously no local API will be active during the build, which I am guessing is the error I'm running into?
To illustrate - here's the code for the pages that are to be generated:
import Head from 'next/head';
export default function Post( { postData, postBlocks } ) {
console.log( { postData, postBlocks } );
return (
<>
<Head>
<title>Placeholder</title>
<meta name="description" content="" />
</Head>
<h1>Placeholder</h1>
</>
)
}
// Get further info on the specific "Post" from Notion via my API
export async function getStaticProps( { params } ) {
const postDataRequest = fetch( `${ process.env.API_ROOT }/posts/${ params.id }` );
const postBlocksRequest = fetch( `${ process.env.API_ROOT }/blocks/${ params.id }` );
const [ postData, postBlocks ] = await Promise.all(
( await Promise.all( [ postDataRequest, postBlocksRequest ] ) )
.map( response => response.json() )
);
return {
props: { postData, postBlocks: postBlocks.results },
revalidate: 86400,
};
}
// Fetch all "Posts" from Notion via my API, get their ID and generate a static route for each
export async function getStaticPaths() {
const req = await fetch( `${ process.env.API_ROOT }/posts?limit=999` );
const data = await req.json();
const paths = data.results.map( page => {
return { params: { id: page.id } };
} )
return {
paths,
fallback: false,
};
}
I've also tried to start the API locally and build the project in another terminal, this didn't work either. Have I missed something somewhere?
I have also published my project on GitHub for further inspection.