diff options
author | Yorhel <git@yorhel.nl> | 2019-09-09 13:41:08 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2019-09-09 13:41:49 +0200 |
commit | 015e3ed49b3ab58c6c70d97e2836a4d11381a6a6 (patch) | |
tree | 3aa1eea9cdeb5098c05db082674f433f86fa98ee | |
parent | aedc8ce63320575d93290c105bf8c0f78d932868 (diff) |
JS/Build: Move minification and compression to "make prod"
Similar to previous commit.
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | Makefile | 15 | ||||
-rw-r--r-- | data/config_example.pl | 7 | ||||
-rwxr-xr-x | util/jsgen.pl | 32 |
4 files changed, 12 insertions, 45 deletions
@@ -10,7 +10,8 @@ /static/f/js/ /static/f/icons.png /static/f/vndb.js -/static/f/vndb.js.gz +/static/f/vndb.min.js +/static/f/vndb.min.js.gz /static/feeds/ /static/s/*/style.css /static/s/*/style.min.css @@ -40,6 +40,7 @@ PROD=\ static/v3/elm-opt.js \ static/v3/min.js static/v3/min.js.gz \ static/v3/min.css static/v3/min.css.gz \ + static/f/vndb.min.js static/f/vndb.min.js.gz \ $(shell ls static/s | sed -e 's/\(.\+\)/static\/s\/\1\/style.min.css/g') \ $(shell ls static/s | sed -e 's/\(.\+\)/static\/s\/\1\/style.min.css.gz/g') @@ -75,9 +76,15 @@ data/config3.pl: echo 'User-agent: *' > $@ echo 'Disallow: /' >> $@ +%.gz: % + zopfli $< + static/f/vndb.js: data/js/*.js util/jsgen.pl data/config.pl data/global.pl | static/f util/jsgen.pl +static/f/vndb.min.js: static/f/vndb.js + uglifyjs $< --compress --mangle -o $@ + data/icons/icons.css: data/icons/*.png data/icons/*/*.png util/spritegen.pl | static/f util/spritegen.pl @@ -87,9 +94,6 @@ static/s/%/style.css: static/s/%/conf util/skingen.pl data/style.css data/icons/ static/s/%/style.min.css: static/s/%/style.css perl -MCSS::Minifier::XS -e 'undef $$/; print CSS::Minifier::XS::minify(scalar <>)' <$< >$@ -static/s/%/style.min.css.gz: static/s/%/style.min.css - zopfli $< - elm3/Lib/Gen.elm: lib/VN3/*.pm lib/VN3/*/*.pm data/config3.pl util/vndb3.pl elmgen >$@ @@ -106,9 +110,6 @@ static/v3/elm-opt.js: elm3/*.elm elm3/*/*.elm elm3/Lib/Gen.elm | static/f static/v3/min.js: static/v3/elm-opt.js static/v3/vndb.js uglifyjs $^ --compress 'pure_funcs="F2,F3,F4,F5,F6,F7,F8,F9,A2,A3,A4,A5,A6,A7,A8,A9",pure_getters,keep_fargs=false,unsafe_comps,unsafe' | uglifyjs --mangle -o $@ -static/v3/min.js.gz: static/v3/min.js - zopfli $< - CSS=\ css3/framework/base.css\ @@ -123,8 +124,6 @@ static/v3/style.css: ${CSS} | static/f static/v3/min.css: static/v3/style.css perl -MCSS::Minifier::XS -e 'undef $$/; print CSS::Minifier::XS::minify(scalar <>)' <$< >$@ -static/v3/min.css.gz: static/v3/min.css - zopfli $< chmod: all chmod -R a-x+rwX static/{ch,cv,sf,st} diff --git a/data/config_example.pl b/data/config_example.pl index 52482ad8..df48f5ef 100644 --- a/data/config_example.pl +++ b/data/config_example.pl @@ -41,13 +41,6 @@ $M{db_login} = { dbname => 'vndb', user => 'vndb_multi', password => 'vndb_multi #}; -# Uncomment the compression method to use for the generated Javascript (or just leave as-is to disable compression) -#$JSGEN{compress} = 'JavaScript::Minifier::XS'; -#$JSGEN{compress} = "|/usr/bin/uglifyjs --compress --mangle"; - -# Uncomment to create pre-compressed css and js files using zopfli -#$JSGEN{gzip} = $SKINGEN{gzip} = "/usr/bin/zopfli"; - # Uncomment to generate an extra small icons.png # (note: using zopflipng or pngcrush with the slow option is *really* slow, but compresses awesomely) #$SPRITEGEN{crush} = '/usr/bin/pngcrush -q'; diff --git a/util/jsgen.pl b/util/jsgen.pl index 828d090f..0cc895ae 100755 --- a/util/jsgen.pl +++ b/util/jsgen.pl @@ -67,36 +67,10 @@ sub readjs { sub save { my($f, $body) = @_; - my $content = encode_utf8($body); - - unlink "$f~"; - if(!$VNDB::JSGEN{compress}) { - open my $F, '>', "$f~" or die $!; - print $F $content; - close $F; - - } elsif($VNDB::JSGEN{compress} eq 'JavaScript::Minifier::XS') { - require JavaScript::Minifier::XS; - open my $F, '>', "$f~" or die $!; - print $F JavaScript::Minifier::XS::minify($content); - close $F; - - } elsif($VNDB::JSGEN{compress} =~ /^\|/) { # External command - (my $cmd = $VNDB::JSGEN{compress}) =~ s/^\|//; - open my $C, '|-', "$cmd >'$f~'" or die $!; - print $C $content; - close $C or die $!; - - } else { - die "Unrecognized compression option: '$VNDB::JSGEN{compress}'\n"; - } - + open my $F, '>', "$f~" or die $!; + print $F encode_utf8($body); + close $F; rename "$f~", $f or die $!; - - if($VNDB::JSGEN{gzip}) { - `$VNDB::JSGEN{gzip} -c '$f' >'$f.gz~'`; - rename "$f.gz~", "$f.gz"; - } } |