From cfe70b8cfeacd347fbd38d0c697d3c79a622cc71 Mon Sep 17 00:00:00 2001 From: Cory LaViska Date: Sat, 18 Jul 2020 07:00:28 -0400 Subject: [PATCH] Remove postinstall and add icons cache; fixes #107 --- .gitignore | 1 + .prettierignore | 1 + CHANGELOG.md | 4 ++++ make-icons.js | 23 ++++++++++++----------- package.json | 3 +-- 5 files changed, 19 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 413ea4ed..32320132 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ log.txt *.sublime-workspace .stencil/ +.icons/ .idea/ .vscode/ .sass-cache/ diff --git a/.prettierignore b/.prettierignore index d1ed7ec9..564d6b3b 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,4 +1,5 @@ .github +.icons .stencil dist docs/assets diff --git a/CHANGELOG.md b/CHANGELOG.md index 83b81171..02072582 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.0.0-beta.5 + +- Removed unused dependency + ## 2.0.0-beta.4 - Added `pill` variation to badges diff --git a/make-icons.js b/make-icons.js index 73e8ca2d..2c0f7106 100644 --- a/make-icons.js +++ b/make-icons.js @@ -14,16 +14,21 @@ let numIcons = 0; (async () => { try { const version = require('./node_modules/bootstrap-icons/package.json').version; - const srcPath = `./temp/icons-${version}`; + const srcPath = `./.icons/icons-${version}`; const url = `https://github.com/twbs/icons/archive/v${version}.zip`; - // Download the source from GitHub (since not everything is published to NPM) - console.log(chalk.cyan(`\nDownloading and extracting Bootstrap Icons ${version}... ๐Ÿ“ฆ\n`)); - await del(['./src/components/icon/icons', './temp']); - await download(url, './temp', { extract: true }); + try { + await fs.stat(`${srcPath}/LICENSE.md`); + console.log(chalk.cyan('Generating icons from cache... โ™ป๏ธ')); + } catch { + // Download the source from GitHub (since not everything is published to NPM) + console.log(chalk.cyan(`Downloading and extracting Bootstrap Icons ${version}... ๐Ÿ“ฆ`)); + await download(url, './.icons', { extract: true }); + } // Copy icons - console.log(chalk.cyan(`Copying icons and license... ๐Ÿš›\n`)); + console.log(chalk.cyan(`Copying icons and license... ๐Ÿš›`)); + await del(['./src/components/icon/icons']); await Promise.all([ copy(`${srcPath}/icons`, './src/components/icon/icons'), copy(`${srcPath}/LICENSE.md`, './src/components/icon/icons/LICENSE.md'), @@ -31,7 +36,7 @@ let numIcons = 0; ]); // Generate metadata - console.log(chalk.cyan(`Generating icon metadata... ๐Ÿท\n`)); + console.log(chalk.cyan(`Generating icon metadata... ๐Ÿท`)); const files = await glob(`${srcPath}/docs/content/icons/**/*.md`); const metadata = await Promise.map(files, async file => { @@ -49,10 +54,6 @@ let numIcons = 0; await fs.writeFile('./src/components/icon/icons/icons.json', JSON.stringify(metadata, null, 2), 'utf8'); - // More cleanup - console.log(chalk.cyan(`Cleaning up... ๐Ÿงน\n`)); - await del('./temp'); - console.log(chalk.green(`Successfully processed ${numIcons} icons! โœจ\n`)); } catch (err) { console.error(err); diff --git a/package.json b/package.json index 6a5fa3aa..0c185be8 100644 --- a/package.json +++ b/package.json @@ -23,13 +23,12 @@ }, "scripts": { "build": "stencil build --docs", - "dev": "stencil build --dev --docs --watch --serve --port 4001 --no-open", + "dev": "npm run make-icons && stencil build --dev --docs --watch --serve --port 4001 --no-open", "lint": "eslint src/**/*{.ts,.tsx}", "make-dist": "node make-dist.js", "make-icons": "node make-icons.js", "prettier": "npx prettier --write --loglevel warn .", "postbuild": "npm run make-dist", - "postinstall": "npm run make-icons", "prebuild": "npm run prettier && npm run lint && npm run make-icons", "serve": "node dev-server.js", "start": "concurrently --kill-others \"npm run dev\" \"npm run serve\"",