-
Notifications
You must be signed in to change notification settings - Fork 188
Expand file tree
/
Copy pathMakefile
More file actions
67 lines (59 loc) · 2.12 KB
/
Makefile
File metadata and controls
67 lines (59 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# oat - Build System
# Requires: esbuild
.PHONY: dist css js clean size publish
CSS_FILES = src/css/00-base.css \
src/css/01-theme.css \
src/css/animations.css \
src/css/button.css \
src/css/form.css \
src/css/table.css \
src/css/progress.css \
src/css/spinner.css \
src/css/grid.css \
src/css/card.css \
src/css/alert.css \
src/css/badge.css \
src/css/accordion.css \
src/css/tabs.css \
src/css/dialog.css \
src/css/dropdown.css \
src/css/toast.css \
src/css/sidebar.css \
src/css/skeleton.css \
src/css/tooltip.css \
src/css/utilities.css
dist: css js size
css:
@mkdir -p dist
@cat $(CSS_FILES) > dist/oat.css
@esbuild dist/oat.css --minify --outfile=dist/oat.min.css
@gzip -9 -k -f dist/oat.min.css
@cp dist/oat.min.css docs/static/oat.min.css
@echo "CSS: $$(wc -c < dist/oat.min.css | tr -d ' ') bytes (minified)"
js:
@mkdir -p dist
@esbuild src/js/index.js --bundle --format=iife --outfile=dist/oat.js
@esbuild src/js/index.js --bundle --format=iife --minify --outfile=dist/oat.min.js
@gzip -9 -k -f dist/oat.min.js
@cp dist/oat.min.js docs/static/oat.min.js
@echo "JS: $$(wc -c < dist/oat.min.js | tr -d ' ') bytes (minified)"
clean:
@rm -rf dist
size:
@echo ""
@echo "Bundle:"
@echo "CSS (src): $$(wc -c < dist/oat.css | tr -d ' ') bytes"
@echo "CSS (min): $$(wc -c < dist/oat.min.css | tr -d ' ') bytes"
@echo "CSS (gzip): $$(wc -c < dist/oat.min.css.gz | tr -d ' ') bytes"
@echo ""
@echo "JS (src): $$(wc -c < dist/oat.js | tr -d ' ') bytes"
@echo "JS (min): $$(wc -c < dist/oat.min.js | tr -d ' ') bytes"
@echo "JS (gzip): $$(wc -c < dist/oat.min.js.gz | tr -d ' ') bytes"
publish: clean dist
@cp -r src/css dist/css
@cp -r src/js dist/js
@cp README.md dist/README.md
@cp LICENSE dist/LICENSE
@VERSION=$$(git describe --tags --abbrev=0 | sed 's/^v//') && \
sed 's/"version-0.0.0"/"'"$$VERSION"'"/' package.json > dist/package.json
@cd dist && npm publish --access public