|
| 1 | +MODULES = ./node_modules/.bin |
| 2 | +WEBPACK = $(MODULES)/webpack |
| 3 | +SERVER = $(MODULES)/webpack-dev-server |
| 4 | +MOCHA = $(MODULES)/mocha |
| 5 | +BABEL = $(MODULES)/babel |
| 6 | +UGLIFY = $(MODULES)/uglifyjs |
| 7 | +SASS = $(MODULES)/node-sass |
| 8 | +POSTCSS = $(MODULES)/postcss |
| 9 | +CLEANCSS = $(MODULES)/cleancss |
| 10 | +ESLINT = $(MODULES)/eslint |
| 11 | +SASSLINT = $(MODULES)/sass-lint |
| 12 | +GHPAGES = $(MODULES)/gh-pages |
| 13 | + |
| 14 | +DEST = dist |
| 15 | +FILE_NAME = ep |
| 16 | +SCRIPT_SRC = src/script/entries/ep/index.js |
| 17 | +STYLE_SRC = src/script/entries/ep/ep.scss |
| 18 | + |
| 19 | +UGLIFY_OPTS = --compress --comments --mangle -o $(DEST)/$(FILE_NAME).min.js $(DEST)/$(FILE_NAME).js |
| 20 | +CLEANCSS_OPTS = --s1 -o $(DEST)/$(FILE_NAME).min.css $(DEST)/$(FILE_NAME).css |
| 21 | +POSTCSS_OPTS = --use autoprefixer -d $(DEST)/ $(DEST)/*.css |
| 22 | + |
| 23 | +help: |
| 24 | + @grep -E '^[a-zA-Z\._-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' |
| 25 | + |
| 26 | +bundle: ## bundles source |
| 27 | + $(WEBPACK) --progress --colors |
| 28 | + |
| 29 | +deploy: ## create deployment bundle |
| 30 | + rm -rf public && $(WEBPACK) --progress --colors -p --deploy && $(GHPAGES) -d public |
| 31 | + |
| 32 | +test-bundle: ## bundles test source |
| 33 | + $(WEBPACK) --config webpack.config.test.babel.js --progress --colors |
| 34 | + |
| 35 | +test: test-bundle ## runs tests |
| 36 | + $(MOCHA) test/test.js |
| 37 | + |
| 38 | +develop: ## develop source |
| 39 | + $(SERVER) --progress --colors -d --hot --inline |
| 40 | + |
| 41 | +setup: ## sets up project |
| 42 | + npm install |
| 43 | + |
| 44 | +dist-style: ## compiles styles for dist |
| 45 | + mkdir -pv $(DEST) && $(SASS) $(STYLE_SRC) $(DEST)/$(FILE_NAME).css && $(POSTCSS) $(POSTCSS_OPTS) && $(CLEANCSS) $(CLEANCSS_OPTS) |
| 46 | + |
| 47 | +dist-script: ## compiles script for dist |
| 48 | + mkdir -pv $(DEST) && $(BABEL) $(SCRIPT_SRC) -o $(DEST)/$(FILE_NAME).js && $(UGLIFY) $(UGLIFY_OPTS) |
| 49 | + |
| 50 | +clean: ## removes directories |
| 51 | + rm -rf $(DEST) public |
| 52 | + |
| 53 | +dist: clean ## create dist scripts |
| 54 | + rm -rf $(DEST) && mkdir -pv $(DEST) && make dist-script && make dist-style |
| 55 | + |
| 56 | +lint-scripts: ## lints ep script |
| 57 | + $(ESLINT) $(SCRIPT_SRC) |
| 58 | + |
| 59 | +lint-styles: ## lints ep stylesheet |
| 60 | + $(SASSLINT) --verbose |
| 61 | + |
| 62 | +lint: ## lints source |
| 63 | + make lint-styles && make lint-scripts |
0 commit comments