Improve build process

Summary:
Improve the build process by combining the CSS files, automatically
selecting font files to include, and building .tar.gz and .zip files.

Test Plan:
 - Make sure tests work
 - Make sure huxley screenshots didn't change
 - Make sure zip and tar.gz files contain only files we want to distribute

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D13159
This commit is contained in:
Emily Eisenberg
2014-09-14 19:31:38 -07:00
parent f63af87f17
commit 9dc767041d
6 changed files with 269 additions and 252 deletions

View File

@@ -1,5 +1,5 @@
.PHONY: build setup copy serve clean metrics test
build: setup build/katex.min.js build/katex.min.css compress
.PHONY: build setup copy serve clean metrics test zip
build: setup build/katex.min.js build/katex.min.css zip compress
setup:
npm install
@@ -13,9 +13,33 @@ build/katex.min.js: build/katex.js
build/katex.less.css: static/katex.less
./node_modules/.bin/lessc $< > $@
build/katex.min.css: build/katex.less.css
build/katex.css: build/katex.less.css static/fonts.css
cat $^ > $@
build/katex.min.css: build/katex.css
./node_modules/.bin/cleancss -o $@ $<
.PHONY: build/fonts
build/fonts:
rm -rf $@
mkdir $@
for font in $(shell grep "font" static/katex.less | grep -o "KaTeX_\w\+" | cut -d" " -f 2 | sort | uniq); do \
cp static/fonts/$$font* $@; \
done
.PHONY: build/katex
build/katex: build/katex.min.js build/katex.min.css build/fonts
mkdir -p build/katex
cp -r $^ build/katex
build/katex.tar.gz: build/katex
cd build && tar czf katex.tar.gz katex/
build/katex.zip: build/katex
cd build && zip -rq katex.zip katex/
zip: build/katex.tar.gz build/katex.zip
compress: build/katex.min.js build/katex.min.css
@$(eval JSSIZE!=gzip -c build/katex.min.js | wc -c)
@$(eval CSSSIZE!=gzip -c build/katex.min.css | wc -c)