From 8f1f95c85c03cdfddef37640059a3b28e994422e Mon Sep 17 00:00:00 2001 From: Jon Rohan Date: Fri, 12 Aug 2022 21:52:28 +0000 Subject: [PATCH] Adding build-css script for watching in dev mode --- package.json | 2 +- script/build-css.js | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100755 script/build-css.js diff --git a/package.json b/package.json index b33d5e7f..615f1e83 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "build:docs": "script/build-docs", "build:docs:preview": "script/build-docs preview", "dist": "script/dist.js", - "dist:watch": "chokidar \"src/**/*.scss\" -c \"script/dist.js\"", + "dist:watch": "chokidar \"src/**/*.scss\" -c \"script/build-css.js\"", "stylelint": "stylelint --quiet --rd 'src/**/*.scss'", "stylelint:fix": "yarn stylelint -- --fix", "stylelint:remove-disables": "script/stylelint-remove-disables.js 'src/**/*.scss'", diff --git a/script/build-css.js b/script/build-css.js new file mode 100755 index 00000000..4c177b57 --- /dev/null +++ b/script/build-css.js @@ -0,0 +1,32 @@ +#!/usr/bin/env node +import {globby} from 'globby' +import compiler from './primer-css-compiler.js' +import {dirname, join} from 'path' + +import fsExtra from 'fs-extra' +const {mkdirp, readFile, writeFile} = fsExtra + + +const inDir = 'src' +const outDir = 'dist' +const bundleNames = { + 'index.scss': 'primer' +} + +const files = await globby([`${inDir}/**/index.scss`]) +await mkdirp(outDir) +const inPattern = new RegExp(`^${inDir}/`) +const tasks = files.map(async from => { + const path = from.replace(inPattern, '') + const name = bundleNames[path] || dirname(path).replace(/\//g, '-') + + const to = join(outDir, `${name}.css`) + + const result = await compiler(await readFile(from, 'utf8'), {from, to}) + + await Promise.all([ + writeFile(to, result.css, 'utf8'), + ]) +}) + +await Promise.all(tasks)