/
Makefile
61 lines (52 loc) · 1.24 KB
/
Makefile
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
PATH := node_modules/.bin:$(PATH)
NPM=npm
NODE_VERSION=$(shell node --version 2>/dev/null)
NVMRC=$(shell cat .nvmrc)
TEST_REPORTS_DIR=test-reports
COVERAGE_REPORTS_DIR=coverage
ROOT = index.js
SOURCES = $(ROOT)
SCRIPTS = `find scripts -name "*.js"`
TESTS = `find __tests__ -name "*.js"`
JESTRC = .jestrc
JEST_FLAGS =
DEVELOPMENT=development
PRODUCTION=production
LINT = standard
TEST = jest -c $(JESTRC) $(JEST_FLAGS)
all: i test clean
configure:
ifneq "$(shell echo $(NODE_VERSION) | sed 's/^v\(.\).*/\1/')" "$(NVMRC)"
$(info )
$(info | Pro tip: install the node version manager (nvm) to manage multiple nodes.)
$(info | https://github.com/creationix/nvm)
$(info )
$(info | Hint: `nvm install $(NVMRC)`)
$(info )
$(error No or wrong node version. Found "$(NODE_VERSION)", please install node $(NVMRC))
endif
i: | configure
ifeq "$(NODE_ENVIRONMENT)" "$(DEVELOPMENT)"
$(NPM) link;
else
$(NPM) i;
endif
test: lint
rm -rf $(TEST_REPORTS_DIR);
mkdir -p $(TEST_REPORTS_DIR);
JEST_JUNIT_REPORTS_DIR=$(TEST_REPORTS_DIR) $(TEST);
lint:
$(LINT) $(SOURCES) $(TESTS) $(SCRIPTS);
.clean: clean
rm -rf node_modules;
clean:
rm -rf $(DIST_DIR) \
$(TEST_REPORTS_DIR) \
$(COVERAGE_REPORTS_DIR);
.PHONY : all \
configure \
.clean \
clean \
i \
lint \
test