martinandert/react-inline

View on GitHub
Makefile

Summary

Maintainability
Test Coverage
BIN = ./node_modules/.bin

SRC_JS = $(shell find src/ -name "*.js")
LIB_JS = $(patsubst src/%.js,lib/%.js,$(SRC_JS))

MOCHA_ARGS = --require babel-core/register -t 5000 -b -R spec test/spec.js

build: node_modules/ $(LIB_JS)

$(LIB_JS): lib/%.js: src/%.js
    @mkdir -p $(dir $@)
    @BABEL_ENV=build $(BIN)/babel $< --out-file $@

fast: node_modules/
    @BABEL_ENV=build $(BIN)/babel src/ --out-dir lib/

watch: node_modules/
    BABEL_ENV=build $(BIN)/babel src/ --out-dir lib/ --watch

lint: node_modules/
    @$(BIN)/eslint src/

test: lint build
    @NODE_ENV=test $(BIN)/mocha $(MOCHA_ARGS)

test-cov: build
    @NODE_ENV=test $(BIN)/istanbul cover $(BIN)/_mocha -- $(MOCHA_ARGS)

node_modules/:
    @npm install

clean:
    @rm -rf lib/ tmp/cache/build/

distclean: clean
    @rm -rf tmp/ node_modules/

release-patch: test
    @$(call release,patch)

release-minor: test
    @$(call release,minor)

release-major: test
    @$(call release,major)

publish:
    git push --tags origin HEAD:master
    npm publish

define release
    npm version $(1) -m 'release v%s'
endef

.PHONY: build fast watch lint test test-cov clean distclean release-patch release-minor release-major publish