-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile
123 lines (96 loc) · 2.12 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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
###
# Config
###
JOBS ?= $(shell nproc)
MAKEFLAGS += -j $(JOBS) -r
PATH := $(abspath node_modules)/.bin:$(PATH)
.DELETE_ON_ERROR:
.SECONDARY:
.SUFFIXES:
###
# Clean
###
.PHONY: clean
clean:
rm -fr node_modules target
###
# Format
###
FORMAT_SRC := $(shell \
find . \
-not \( -name node_modules -prune \) \
-not \( -name target -prune \) \
-name '*.css' \
-o -name '*.html' \
-o -name '*.json' \
-o -name '*.md' \
-o -name '*.scss' \
-o -name '*.ts' \
)
.PHONY: format
format: target/format.log
.PHONY: test-format
test-format: target/format-test.log
target/format.log: target/node_modules.log $(FORMAT_SRC)
prettier --write $(FORMAT_SRC)
mkdir -p $(@D)
touch $@ target/format-test.log
target/format-test.log: target/node_modules.log $(FORMAT_SRC)
prettier -c $(FORMAT_SRC)
mkdir -p $(@D)
touch $@ target/format.log
###
# npm
###
target/node_modules.log: package.json $(wildcard yarn.lock)
yarn install
mkdir -p $(@D)
> $@
###
# Angular
###
NG_SRC := angular.json tsconfig.json $(shell find src -name '*.css' -o -name '*.html' -o -name '*.json' -o -name '*.scss' -o -name '*.ts')
.PHONY: build
build: target/ng/dev.log
.PHONY: build-prod
build-prod: target/ng/prod.log
.PHONY: watch
watch: target/node_modules.log
rm -fr target/ng/dev
ng build --watch
target/ng/dev.log: target/node_modules.log $(NG_SRC)
rm -fr $(@:.log=)
ng build
mkdir -p $(@D)
> $@
du -hs $(@:.log=)
target/ng/prod.log: target/node_modules.log $(NG_SRC)
rm -fr $(@:.log=)
ng build --prod
mkdir -p $(@D)
> $@
du -hs $(@:.log=)
target/ng/explore.log: target/node_modules.log $(NG_SRC)
rm -fr $(@:.log=)
ng build --prod --outputPath $(@:.log=) --sourceMap true
mkdir -p $(@D)
> $@
du -hs $(@:.log=)
###
# Extension
###
.PHONY: extension
extension: target/extension.zip
target/extension.zip: target/ng/prod.log
mkdir -p $(@D)
cd $(<:.log=) && zip -r ../../extension .
du -hs $@
###
# Explore
###
.PHONY: explore
explore: target/explore.html
target/explore.html: target/ng/explore.log target/node_modules.log
mkdir -p $(@D)
find $(<:.log=) -name '*.css' -or -name '*.js' -print0 | xargs -0 source-map-explorer --html $@
@echo $@