1
0
Fork 0

fix(sites): Build dependencies prior to building sites

This commit is contained in:
joostdecock 2023-05-20 15:18:10 +02:00
parent ce556a4664
commit 054f34b8c0
5 changed files with 13 additions and 34 deletions

View file

@ -68,7 +68,8 @@ dev:
develop: *nextDev
i18n: "SITE=dev node ../shared/prebuild/i18n-only.mjs"
lint: &nextLint 'next lint'
prebuild: 'SITE=dev node --experimental-json-modules ../shared/prebuild/index.mjs'
buildsitedeps: &buildsitedeps 'cd ../../ && yarn buildall && cd -'
prebuild: 'yarn buildsitedeps && SITE=dev node --experimental-json-modules ../shared/prebuild/index.mjs'
serve: "pm2 start npm --name 'dev' -- run start"
start: &nextStart 'yarn prebuild && yarn dev'
@ -84,7 +85,8 @@ lab:
develop: *nextDev
e2e: &e2e 'yarn playwright test'
lint: *nextLint
prebuild: 'SITE=lab node --experimental-json-modules ../shared/prebuild/index.mjs'
buildsitedeps: *buildsitedeps
prebuild: 'yarn buildsitedeps && SITE=lab node --experimental-json-modules ../shared/prebuild/index.mjs'
start: *nextStart
org:
@ -95,7 +97,8 @@ org:
develop: *nextDev
i18n: 'SITE=org node ../shared/prebuild/i18n-only.mjs'
lint: *nextLint
prebuild: 'SITE=org node --experimental-json-modules ../shared/prebuild/index.mjs'
buildsitedeps: *buildsitedeps
prebuild: 'yarn buildsitedeps && SITE=org node --experimental-json-modules ../shared/prebuild/index.mjs'
start: *nextStart
sanity:

View file

@ -21,7 +21,8 @@
"develop": "next dev -p 8000",
"i18n": "SITE=dev node ../shared/prebuild/i18n-only.mjs",
"lint": "next lint",
"prebuild": "SITE=dev node --experimental-json-modules ../shared/prebuild/index.mjs",
"buildsitedeps": "cd ../../ && yarn buildall && cd -",
"prebuild": "yarn buildsitedeps && SITE=dev node --experimental-json-modules ../shared/prebuild/index.mjs",
"serve": "pm2 start npm --name 'dev' -- run start",
"start": "yarn prebuild && yarn dev"
},

View file

@ -21,7 +21,8 @@
"develop": "next dev -p 8000",
"e2e": "yarn playwright test",
"lint": "next lint",
"prebuild": "SITE=lab node --experimental-json-modules ../shared/prebuild/index.mjs",
"buildsitedeps": "cd ../../ && yarn buildall && cd -",
"prebuild": "yarn buildsitedeps && SITE=lab node --experimental-json-modules ../shared/prebuild/index.mjs",
"start": "yarn prebuild && yarn dev"
},
"peerDependencies": {},

View file

@ -21,7 +21,8 @@
"develop": "next dev -p 8000",
"i18n": "SITE=org node ../shared/prebuild/i18n-only.mjs",
"lint": "next lint",
"prebuild": "SITE=org node --experimental-json-modules ../shared/prebuild/index.mjs",
"buildsitedeps": "cd ../../ && yarn buildall && cd -",
"prebuild": "yarn buildsitedeps && SITE=org node --experimental-json-modules ../shared/prebuild/index.mjs",
"start": "yarn prebuild && yarn dev"
},
"peerDependencies": {},

View file

@ -89,25 +89,17 @@ export const fileToSlug = (file, site, lang) =>
export const prebuildDocs = async (site) => {
// Say hi
console.log()
console.log(`Prebuilding docs pages for freesewing.${site}`)
console.log(`Compiling list of docs pages for freesewing.${site}`)
// Setup MDX root path
const root = ['..', '..', 'markdown', site]
if (site === 'org') root.push('docs')
const mdxRoot = path.resolve(...root)
// Load page template
const template = fs.readFileSync(
path.resolve('..', 'shared', 'page-templates', `docs.${site}.mjs.mustache`),
'utf-8'
)
// Languages
const locales = site === 'dev' ? ['en'] : ['en', 'fr', 'es', 'nl', 'de']
const pages = {}
// Loop over languages
for (const lang of locales) {
pages[lang] = {}
@ -136,25 +128,6 @@ export const prebuildDocs = async (site) => {
// Create og image
await generateOgImage({ lang, site, slug, title: meta.data.title, intro: intros[lang] })
}
// Things to only do for English
if (lang === 'en') {
// Write page to disk
const dir = path.resolve('..', site, 'pages', ...slug.split('/'))
fs.mkdirSync(dir, { recursive: true })
fs.writeFileSync(
path.resolve(dir, `index.mjs`),
mustache.render(template, {
slug,
slugArray: JSON.stringify(slug.split('/')),
introEN: intros.en || 'fixme',
introES: intros.es || 'fixme',
introDE: intros.de || 'fixme',
introFR: intros.fr || 'fixme',
introNL: intros.nl || 'fixme',
})
)
}
}
}