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 develop: *nextDev
i18n: "SITE=dev node ../shared/prebuild/i18n-only.mjs" i18n: "SITE=dev node ../shared/prebuild/i18n-only.mjs"
lint: &nextLint 'next lint' 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" serve: "pm2 start npm --name 'dev' -- run start"
start: &nextStart 'yarn prebuild && yarn dev' start: &nextStart 'yarn prebuild && yarn dev'
@ -84,7 +85,8 @@ lab:
develop: *nextDev develop: *nextDev
e2e: &e2e 'yarn playwright test' e2e: &e2e 'yarn playwright test'
lint: *nextLint 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 start: *nextStart
org: org:
@ -95,7 +97,8 @@ org:
develop: *nextDev develop: *nextDev
i18n: 'SITE=org node ../shared/prebuild/i18n-only.mjs' i18n: 'SITE=org node ../shared/prebuild/i18n-only.mjs'
lint: *nextLint 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 start: *nextStart
sanity: sanity:

View file

@ -21,7 +21,8 @@
"develop": "next dev -p 8000", "develop": "next dev -p 8000",
"i18n": "SITE=dev node ../shared/prebuild/i18n-only.mjs", "i18n": "SITE=dev node ../shared/prebuild/i18n-only.mjs",
"lint": "next lint", "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", "serve": "pm2 start npm --name 'dev' -- run start",
"start": "yarn prebuild && yarn dev" "start": "yarn prebuild && yarn dev"
}, },

View file

@ -21,7 +21,8 @@
"develop": "next dev -p 8000", "develop": "next dev -p 8000",
"e2e": "yarn playwright test", "e2e": "yarn playwright test",
"lint": "next lint", "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" "start": "yarn prebuild && yarn dev"
}, },
"peerDependencies": {}, "peerDependencies": {},

View file

@ -21,7 +21,8 @@
"develop": "next dev -p 8000", "develop": "next dev -p 8000",
"i18n": "SITE=org node ../shared/prebuild/i18n-only.mjs", "i18n": "SITE=org node ../shared/prebuild/i18n-only.mjs",
"lint": "next lint", "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" "start": "yarn prebuild && yarn dev"
}, },
"peerDependencies": {}, "peerDependencies": {},

View file

@ -89,25 +89,17 @@ export const fileToSlug = (file, site, lang) =>
export const prebuildDocs = async (site) => { export const prebuildDocs = async (site) => {
// Say hi // Say hi
console.log() console.log()
console.log(`Prebuilding docs pages for freesewing.${site}`) console.log(`Compiling list of docs pages for freesewing.${site}`)
// Setup MDX root path // Setup MDX root path
const root = ['..', '..', 'markdown', site] const root = ['..', '..', 'markdown', site]
if (site === 'org') root.push('docs') if (site === 'org') root.push('docs')
const mdxRoot = path.resolve(...root) const mdxRoot = path.resolve(...root)
// Load page template
const template = fs.readFileSync(
path.resolve('..', 'shared', 'page-templates', `docs.${site}.mjs.mustache`),
'utf-8'
)
// Languages // Languages
const locales = site === 'dev' ? ['en'] : ['en', 'fr', 'es', 'nl', 'de'] const locales = site === 'dev' ? ['en'] : ['en', 'fr', 'es', 'nl', 'de']
const pages = {} const pages = {}
// Loop over languages // Loop over languages
for (const lang of locales) { for (const lang of locales) {
pages[lang] = {} pages[lang] = {}
@ -136,25 +128,6 @@ export const prebuildDocs = async (site) => {
// Create og image // Create og image
await generateOgImage({ lang, site, slug, title: meta.data.title, intro: intros[lang] }) 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',
})
)
}
} }
} }