forked from Goldinteractive/feature-slider
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
121 lines (97 loc) · 2.7 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
# Import the environment variables
-include .env
LIBRARY_NAME=slider
NODE_MODULES=./node_modules
SCRIPTS_PATH=./.tasks
CONFIG_PATH=./.config
WEBPACK=$(NODE_MODULES)/.bin/webpack
POSTCSS=$(NODE_MODULES)/.bin/postcss
ESLINT=$(NODE_MODULES)/.bin/eslint
BROWSERSYNC=$(NODE_MODULES)/.bin/browser-sync
WEBPACK_CONFIG=$(CONFIG_PATH)/webpack.js
POSTCSS_CONFIG=$(CONFIG_PATH)/postcss.js
BROWSERSYNC_CONFIG=$(CONFIG_PATH)/browsersync.js
JSDOC_CONFIG=$(CONFIG_PATH)/jsdoc.json
SOURCE_PATH=./src
LIBRARY_PATH=./lib
ASSETS_PATH=./assets
DOCS_PATH=./jsdoc
DEV_PATH=./docs
DEV_CSS_PATH=$(DEV_PATH)/css
DEV_JS_PATH=$(DEV_PATH)/js
publish: jsdoc build
@ npm publish
build: test js js-minified css
test:
# check source with eslint
@ $(ESLINT) $(SOURCE_PATH)
js:
@ LIBRARY_NAME=$(LIBRARY_NAME) \
LIBRARY_PATH=$(LIBRARY_PATH) \
SOURCE_PATH=$(SOURCE_PATH) \
$(WEBPACK) --config $(WEBPACK_CONFIG) \
--progress --colors --display-error-details
js-minified:
@ LIBRARY_NAME=$(LIBRARY_NAME) \
LIBRARY_PATH=$(LIBRARY_PATH) \
SOURCE_PATH=$(SOURCE_PATH) \
$(WEBPACK) --config $(WEBPACK_CONFIG) \
--progress --colors --display-error-details --env.mode=minified
jsdoc:
# generate js documentation
@ jsdoc -r \
-R README.md \
-c $(JSDOC_CONFIG) \
-d $(DOCS_PATH) \
$(SOURCE_PATH)
css: sass postcss
sass:
# compile the sass files
@ scss -I $(NODE_MODULES) \
$(SOURCE_PATH)/style.scss:$(SOURCE_PATH)/style.scss.css \
-r sass-json-vars
postcss:
# modify the normal css with postcss
@ ASSETS_PATH=$(ASSETS_PATH) \
$(POSTCSS) --config $(POSTCSS_CONFIG) \
$(SOURCE_PATH)/style.scss.css -o $(LIBRARY_PATH)/$(LIBRARY_NAME).css
dev:
@ $(SCRIPTS_PATH)/utils/parallel \
"make dev-sync" \
"make dev-js" \
"make dev-css"
dev-sync:
# starting browser sync server for demo
@ DEV_PATH=$(DEV_PATH) \
DEV_JS_PATH=$(DEV_JS_PATH) \
DEV_CSS_PATH=$(DEV_CSS_PATH) \
BROWSER=$(BROWSERSYNC_BROWSER) \
PORT=$(BROWSERSYNC_PORT) \
$(BROWSERSYNC) start \
--config $(BROWSERSYNC_CONFIG)
dev-js:
# watch demo js
@ LIBRARY_NAME=$(LIBRARY_NAME) \
LIBRARY_PATH=$(LIBRARY_PATH) \
SOURCE_PATH=$(SOURCE_PATH) \
DEV_PATH=$(DEV_PATH) \
DEV_JS_PATH=$(DEV_JS_PATH) \
$(WEBPACK) --config $(WEBPACK_CONFIG) \
--progress --colors --watch --display-error-details --env.mode=dev
dev-css:
# watch demo sass
@ $(SCRIPTS_PATH)/utils/parallel \
"make dev-sass" \
"make dev-postcss"
dev-sass:
# watch the sass files
@ scss -I $(NODE_MODULES) \
$(DEV_PATH)/demo.scss:$(DEV_CSS_PATH)/demo.scss.css \
-r sass-json-vars \
--watch
dev-postcss:
# watch generated css file with postcss
@ ASSETS_PATH=$(ASSETS_PATH) \
$(POSTCSS) --config $(POSTCSS_CONFIG) \
$(DEV_CSS_PATH)/demo.scss.css -o $(DEV_CSS_PATH)/demo.css \
--watch