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
|
#!/usr/bin/make -f
STEM = leaflet
ESLINT = eslint --format tap
# TODO: drop when node-eslint-config-mourner is in Debian
ESLINT += $(strip \
--no-eslintrc --global L --env commonjs,amd,node \
--parser-options '{ "ecmaVersion": 2015, "sourceType": "module" }' \
--rule '{ \
"linebreak-style": [ 0, "unix" ], \
"no-mixed-spaces-and-tabs": [ 2, "smart-tabs" ], \
"indent": [ 2, "tab", { "VariableDeclarator": 0, "flatTernaryExpressions": true } ], \
"curly": 2, \
"spaced-comment": 2, \
"strict": 0, \
"wrap-iife": 0, \
"key-spacing": 0, \
"consistent-return": 0, \
"no-unused-expressions": [ "error", { "allowShortCircuit": true } ] }')
override_dh_auto_build: \
debian/js/$(STEM).esm.min.js.gz \
debian/js/$(STEM).min.js.gz \
debian/js/$(STEM).css.gz
dist/$(STEM)-src.esm.js \
dist/$(STEM)-src.js:
NODE_ENV=release rollup --config build/rollup-config.js
override_dh_auto_test:
$(ESLINT) src spec/suites docs/docs/js
execute_after_dh_install:
rename 's/-src//' debian/*/usr/share/javascript/leaflet/*.js
# optimize JavaScript for browser use
# * include source-map using upstream intermediary
debian/js/%.esm.min.js: dist/%-src.esm.js
mkdir --parents debian/js
terser --compress --mangle \
--source-map "base='$(abspath $(dir $@))',content='$<.map',url='$(notdir $@).map'" \
--output $@ \
-- $<
debian/js/%.min.js: dist/%-src.js
mkdir --parents debian/js
uglifyjs --compress --mangle \
--source-map "base='$(abspath $(dir $@))',content='$<.map',url='$(notdir $@).map'" \
--output $@ \
-- $<
# pre-compress for browser use
%.gz: %
pigz --force --keep -11 -- $<
brotli --force --keep --best --suffix=.brotli -- $<
# optimize CSS
debian/js/%.css: dist/%.css
sassc --style compressed --sourcemap \
-- $< $@
%:
dh $@
.SECONDARY:
|