When I try to run netlify dev
I get the following output:
◈ Netlify Dev ◈
◈ Ignored general context env var: LANG (defined in process)
◈ Injected .env file env var: SANITY_PROJECT_NAME
◈ Injected .env file env var: SANITY_PROJECT_ID
◈ Injected .env file env var: SANITY_TOKEN
◈ Injected .env file env var: DEV_BROWSER
◈ Injected .env file env var: SANITY_LOC
◈ Injected .env file env var: SANITY_NAME
◈ Injected .env file env var: SANITY_DATASET
◈ Injected .env file env var: NX_ADD_PLUGINS
◈ Setting up local development server
◈ Starting Netlify Dev with Eleventy
sanity dataset: dev
[11ty] Problem writing Eleventy templates: (more in DEBUG output)
[11ty] Could not find pagination data (./site-src/pages.11ty.js), went looking for: pages (via Error)
[11ty]
[11ty] Original error stack trace: Error: Could not find pagination data (./site-src/pages.11ty.js), went looking for: pages
[11ty] at Pagination._get (/Users/steveystill/sites/web-repo/node_modules/@11ty/eleventy/src/Plugins/Pagination.js:141:13)
[11ty] at Pagination.setData (/Users/steveystill/sites/web-repo/node_modules/@11ty/eleventy/src/Plugins/Pagination.js:82:29)
[11ty] at new Pagination (/Users/steveystill/sites/web-repo/node_modules/@11ty/eleventy/src/Plugins/Pagination.js:21:10)
[11ty] at Template.getTemplates (/Users/steveystill/sites/web-repo/node_modules/@11ty/eleventy/src/Template.js:703:21)
[11ty] at TemplateMap.initDependencyMap (/Users/steveystill/sites/web-repo/node_modules/@11ty/eleventy/src/TemplateMap.js:414:41)
[11ty] at TemplateMap.cache (/Users/steveystill/sites/web-repo/node_modules/@11ty/eleventy/src/TemplateMap.js:458:16)
[11ty] at TemplateWriter._createTemplateMap (/Users/steveystill/sites/web-repo/node_modules/@11ty/eleventy/src/TemplateWriter.js:330:28)
[11ty] at async TemplateWriter.generateTemplates (/Users/steveystill/sites/web-repo/node_modules/@11ty/eleventy/src/TemplateWriter.js:360:5)
[11ty] at async TemplateWriter.write (/Users/steveystill/sites/web-repo/node_modules/@11ty/eleventy/src/TemplateWriter.js:407:23)
[11ty] at async Eleventy.executeBuild (/Users/steveystill/sites/web-repo/node_modules/@11ty/eleventy/src/Eleventy.js:1191:13)
[11ty] Wrote 0 files in 0.29 seconds (v2.0.1)
Everything was running just fine last month, and has just recently produced this error. I worked all week with the 11ty team hoping to resolve this issue, but we concluded that it is either a Netlify or Sanity issue. Was there a recent update to Netlify that would have required me to make some changes? Has anyone run into this before? I found a few similar topics in this community, but nothing that answers my question.
I can do a build just fine, but as soon as I try to bring Netlify into the mix, it fails.
My ./site-src/pages.11ty.js file consists of one line of code:
module.exports = require('site-builder/components/WebPages');
That site-builder/components/WebPages.js file looks like:
const TopNavMenu = require('nav-widgets/cjs/topnavmenu/TopNavMenu');
const TopHeaderBar = require('nav-widgets/cjs/topheaderbar/TopHeaderBar');
const { AtfMediaPreload } = require('./AtfMediaPreload');
const CommonCSS = require('../utils/commonCSS');
const {
inlineWidgetCSS,
footerWidgetCSS,
} = require('../../loe-widgets/WidgetRegistry');
const {
KeyWordsTag,
DescriptionTag,
WebPageLDJSON,
FaceBookOgMeta,
} = require('./SeoData');
const PageCSSBuilder = require('../utils/PageCSSBuilder');
const PageBody = require('../components/PageBody');
const FullPageJson = require('../utils/FullPageJson');
const LoeFooter = require('footer-widgets/cjs/footer/LoeFooter');
function renderScript() {
return `<script type="module" src="https://loe-assets.logicofenglish.com/js/global.js"></script>`;
}
function renderAnalytics() {
//old analytics url: fcr.logicofenglish.com/script.js
let analytics =
'<script src="https://cdn.usefathom.com/script.js" data-site="RIFESDEK" defer></script>';
if (process.env.ANALYTICS && process.env.ANALYTICS == 'NO') {
analytics = `
<!-- NO ANALYTICS -->`;
}
return analytics;
}
function getInlineCSS(pageType) {
let cssArray = PageCSSBuilder({ pageType: pageType });
return `<style type="text/css">${CommonCSS(cssArray)}</style>`;
}
function getBodyCSS(body, pageType) {
let cssArray = PageCSSBuilder({ body: body, pageType: pageType });
return `<style type="text/css">
${CommonCSS(cssArray)}
</style> `;
}
function getFooterCSS() {
let cssArray = [];
for (let cssProp in footerWidgetCSS) {
cssArray.push({
isNodePackage: true,
fileName: footerWidgetCSS[cssProp],
});
}
return `<style type="text/css">${CommonCSS(cssArray)}</style>`;
}
class WebPages {
data() {
return {
pagination: {
data: 'pages',
size: 1,
alias: 'dataPage',
},
permalink: function (data) {
return `${data.dataPage.slug}`;
},
};
}
async render(data) {
let googleFontsUrl =
'https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Lato&display=swap';
let iconFont = 'https://loe-assets.logicofenglish.com/fonts/loe-icons.woff';
let layoutTemplate = 'default';
if (data.dataPage.dev?.template) {
layoutTemplate = data.dataPage.dev.template;
}
let fpjb = await FullPageJson(data.dataPage.body, false);
data.dataPage.body = fpjb;
return `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- Start SEO Data -->
<title>${data.dataPage.title}</title>
${DescriptionTag(data.dataPage)}
${KeyWordsTag(data.dataPage)}
${WebPageLDJSON(data.dataPage, data.sanity.baseUrl)}
${FaceBookOgMeta(data.dataPage, data.sanity.baseUrl)}
<!-- End SEO Data -->
${renderAnalytics()}
<link rel="shortcut icon" type="image/x-icon" href="https://assets.logicofenglish.com/images/favicon.ico"/>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/>
<link rel="preload" as="style" href="${googleFontsUrl}"/>
<link media="print" onload="this.onload=null;this.removeAttribute('media');" href="${googleFontsUrl}" rel="stylesheet"/>
<link rel="preconnect" href="https://loe-assets.logicofenglish.com" crossorigin/>
<link rel="preload" as="font" type="font/woff" crossorigin href="${iconFont}"/>
${getBodyCSS(data.dataPage.body, data.dataPage.pageType)}
${getFooterCSS()}
${AtfMediaPreload(data.dataPage)}
</head>
<body>
${TopHeaderBar()}
${TopNavMenu(data.nav)}
${await PageBody(data.dataPage)}
<div role="contentinfo" class="l-footer">${LoeFooter({
footer: data.globalSettings.footers[0],
})}</div>
</body>
${renderScript()}
</html>`;
}
}
module.exports = WebPages;
The error mentions not finding pages
, and I think that is defined as follows:
/apps/root-site/site-src/_data/pages.js:
const pages = require('site-builder/data/pages');
const sanitySettings = require('./sanity');
module.exports = async function () {
return await pages(sanitySettings.microsite);
};
And /libs/site-builder/data/pages.js:
const SanityObject = require('../utils/SanityObject');
module.exports = async function (microsite) {
const query = `*[_type == "microsite" && title == "${microsite}"][0]{"pages": content[]{title,url,"content":*[_type == "page" && _id == ^.docId._ref][0]}}`;
const micrositeResults = await SanityObject({
query: query,
cacheId: 'pages',
});
let pages = []
if (micrositeResults?.pages?.length > 0) {
pages = micrositeResults?.pages?.map((page) => {
try {
let pageData = Object.assign(page.content, { slug: page.url });
return pageData;
} catch (err) {
if (!page) {
throw new Error('No Page defined');
}
if (page?.url && !page.content) {
throw new Error(`no content assigend to ${page.url}`);
}
if (!page.url) {
throw new Error(`no page url defined`);
}
}
});
}
return pages;
};
Any help on this would be greatly appreciated as I have been banging my head against a wall for a week now trying to solve this. I am not sure if I have given enough info, so please let me know if there’s anything else that would be helpful.