Skip to content

Commit a8087a3

Browse files
authored
Generate all assets (#7018)
- [x] `gen-assets` is decoupled from build - [x] `gen-assets` creates `og-images` and `sitemap.xml` - [x] `gen-assets` is ran in `polaris-site-container-builder` and optionally locally Shopify/polaris-site-container-builder#18 - [x] No more `sitemap.xml` changing in PR's problems - [x] Adds turborepo script so it can be ran at root by `polaris-site-container-builder`
1 parent ae7345f commit a8087a3

File tree

9 files changed

+488
-181
lines changed

9 files changed

+488
-181
lines changed

.changeset/kind-dodos-rest.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'polaris.shopify.com': minor
3+
---
4+
5+
Generate assets once with a seperate script

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ node_modules
1212
/polaris-react/build-internal
1313
/polaris-react/src/styles/_media-queries.scss
1414
/polaris-tokens/build
15+
/polaris.shopify.com/public/sitemap.xml
1516
/polaris.shopify.com/public/og-images

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"format": "prettier . --write",
3535
"type-check": "tsc --build",
3636
"changeset": "changeset",
37+
"gen-assets": "turbo run gen-assets --filter=polaris.shopify.com",
3738
"preversion-packages": "turbo run preversion",
3839
"version-packages": "yarn preversion-packages && changeset version",
3940
"release": "turbo run build --filter=polaris.shopify.com^... && changeset publish",

polaris.shopify.com/next-sitemap.config.js

Lines changed: 0 additions & 9 deletions
This file was deleted.

polaris.shopify.com/package.json

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,15 @@
33
"version": "0.13.0",
44
"private": true,
55
"scripts": {
6-
"build": "yarn run gen-assets && next build",
6+
"build": "next build",
77
"dev": "open http://localhost:3000 && next dev",
8-
"postbuild": "yarn gen-sitemap",
9-
"start": "next start ",
8+
"start": "next start",
109
"lint": "run-p lint:*",
1110
"lint:js": "TIMING=1 eslint --cache .",
1211
"lint:styles": "stylelint '**/*.{css,scss}'",
1312
"clean": "rm -rf .turbo node_modules .next *.tsbuildinfo",
1413
"create-component": "generact --root src/components src/components/Template/Template.tsx",
15-
"gen-assets": "node scripts/gen-og-images.mjs",
16-
"gen-sitemap": "yarn next-sitemap",
14+
"gen-assets": "node scripts/gen-assets.mjs",
1715
"get-props": "ts-node --skip-project ./scripts/get-props.ts"
1816
},
1917
"dependencies": {
@@ -42,12 +40,13 @@
4240
"@types/react": "*",
4341
"eslint-config-next": "12.1.0",
4442
"eslint": "8.10.0",
43+
"execa": "^6.1.0",
4544
"frontmatter": "^0.0.3",
45+
"get-site-urls": "3.0.0-alpha.1",
4646
"generact": "^0.4.0",
4747
"globby": "^11.1.0",
4848
"js-yaml": "^4.1.0",
4949
"marked": "^4.0.16",
50-
"next-sitemap": "^3.1.5",
5150
"puppeteer": "^16.0.0",
5251
"rehype-raw": "^6.1.1",
5352
"sass": "^1.49.9",

polaris.shopify.com/public/sitemap.xml

Lines changed: 0 additions & 138 deletions
This file was deleted.

polaris.shopify.com/scripts/gen-og-images.mjs renamed to polaris.shopify.com/scripts/gen-assets.mjs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import puppeteer from 'puppeteer';
2-
import {writeFile, readFile, mkdir, rm} from 'fs/promises';
32
import matter from 'gray-matter';
3+
import {execa} from 'execa';
44
import path from 'path';
5+
56
import {existsSync} from 'fs';
7+
import {writeFile, readFile, mkdir, rm} from 'fs/promises';
68

79
const imgDir = path.join(process.cwd(), 'public/og-images');
810

@@ -168,7 +170,19 @@ const getPNG = async (url, browser) => {
168170
await writeFile(`${imgDir}${imgPath}/${slug}.png`, image);
169171
};
170172

171-
const generateImages = async () => {
173+
const genAssets = async () => {
174+
const server = execa('node_modules/.bin/next', ['dev']);
175+
176+
const {stdout} = await execa('npx', [
177+
'get-site-urls',
178+
'http://localhost:3000',
179+
'--output=public/sitemap.xml',
180+
'--alias=https://polaris.shopify.com',
181+
]);
182+
console.log(stdout);
183+
184+
await server.kill();
185+
172186
if (existsSync(imgDir)) await rm(imgDir, {recursive: true});
173187
await mkdir(imgDir, {recursive: true});
174188
const urls = await getUrls();
@@ -182,6 +196,7 @@ const generateImages = async () => {
182196
await Promise.all(generateImages);
183197

184198
await browser.close();
199+
console.log(`✅ Created ${urls.length} og-images from sitemap`);
185200
};
186201

187-
await generateImages();
202+
await genAssets();

turbo.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
},
2222
"preversion": {
2323
"cache": false
24+
},
25+
"gen-assets": {
26+
"cache": false
2427
}
2528
}
2629
}

0 commit comments

Comments
 (0)