From a183e8cbd33043f4c0c447f1a008bb8e06b84e31 Mon Sep 17 00:00:00 2001 From: "Felix W. Dekker" Date: Sun, 3 May 2020 17:21:39 +0200 Subject: [PATCH] Set up file watcher for faster development --- Gruntfile.js | 65 +++++++++++++++++++++++++++++++++++++++++++ README.md | 6 ++-- package-lock.json | Bin 188582 -> 232904 bytes package.json | 12 ++++++-- src/main/css/nav.css | 0 webpack.config.js | 26 ----------------- 6 files changed, 78 insertions(+), 31 deletions(-) create mode 100644 Gruntfile.js create mode 100644 src/main/css/nav.css delete mode 100644 webpack.config.js diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 0000000..e609af1 --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,65 @@ +const path = require("path"); + +module.exports = grunt => { + grunt.initConfig({ + pkg: grunt.file.readJSON("package.json"), + focus: { + dev: { + include: ["css", "js"], + }, + }, + webpack: { + options: { + entry: "./src/main/js/Template.js", + module: { + rules: [ + { + test: /\.js$/i, + exclude: /node_modules/, + }, + { + test: /\.css$/i, + use: ["style-loader", "css-loader"], + }, + ], + }, + resolve: { + extensions: [".js", ".css"], + }, + output: { + library: "fwdekker-template", + libraryTarget: "umd", + filename: "index.js", + path: path.resolve(__dirname, "dist"), + } + }, + dev: { + mode: "development", + devtool: "inline-source-map", + }, + deploy: { + mode: "production", + }, + }, + watch: { + css: { + files: ["src/main/**/*.css"], + tasks: ["webpack:dev"], + }, + js: { + files: ["src/main/**/*.js"], + tasks: ["webpack:dev"], + }, + }, + }); + + grunt.loadNpmTasks("grunt-contrib-watch"); + grunt.loadNpmTasks("grunt-focus"); + grunt.loadNpmTasks("grunt-webpack"); + + grunt.registerTask("dev", ["webpack:dev"]); + grunt.registerTask("dev:server", ["dev", "focus:dev"]); + grunt.registerTask("deploy", ["webpack:deploy"]); + + grunt.registerTask("default", ["dev"]); +}; diff --git a/README.md b/README.md index c1c225e..75740f1 100644 --- a/README.md +++ b/README.md @@ -17,9 +17,11 @@ $> npm ci ### Building ```shell script -# Build the application in `build/` for development +# Build the template in `dist/` for development $> npm run dev -# Build the application in `build/` for deployment +# Run the `dev` task and automatically rerun it whenever files are changed +$> npm run dev:server +# Build the template in `dist/` for deployment $> npm run deploy ``` diff --git a/package-lock.json b/package-lock.json index ecb2e766b4cbdd01254bd55424184b8791b834f9..bdf3d3f7604c3594c8bdbaa6a4ba504b663b9f6e 100644 GIT binary patch delta 16730 zcmaKTd6XN+dFSiq%p07Mz{O4jH#D?*csx znSt5BA{l0vR&teCB@J@>eMQNclXRDw3On)%TPWT2`%E=_;Or3DaBRV|lIa^tRc6gexp3tt&?hP5rg&xB`U8OZ@cqW}+YcC5-Zcka+lw7FGQo3)*B^HjDDmbEz?#@m@Y>VZ zv14?a$=9i>)GL%SnWnE44OAz?P($YUF}V2&ymDKn7PsIm1Fk-guNceEUNT;GE-bQ4 zqixQ?fYGh!#<=;e3&%;T?97h>zVaYM#)I`?vmkNNoD>?iv>;eKgOhuh0r~@u7n@f2 zk9|Cc)lh#YHd?feUN@TnR=|%M#Qpn^*~h`Sly6%?-Jw?=_4M?(UzS*nZo7g;|17!9 z>|N>c;3X2Z-P;y*5mT>ps@yYKH{I&jtNa%2DKG z7r<&bb^AX%k8A^f_Co!LNvhcr6*XNeCG*8_*SNkna=0OhDlZP1dXKd>;L5Q`qaGl@&FAs`;L10! zg&l)|G%y?8#&eA$+Xl?oiar6pY{O0%4}N=Ldq(Cs;-1YBukco(8$P%1f6W~0XE_?d@l0#+3u@5jPHNy=;PP$ z2>9*q;)gH_JojzxLpDsoB+|1wA*+bce>x4<9#V z>#8Aqa+mR~r;ctF7}+Y-J7BqsuioB2dTnt#$FZ!^81S;;^DJW|c=}%a(y4~D(X67+ z-f;_;nKYj6+;`0B>IZzakj2Y~CzYz?^bnnfJxAFc6NmB2FH^U-Jo1lQwm?loV_62o zZ{e5rHzas(j>Eh_T}?G6B*_t9r8HnfZ%)cjT6$&ViYNU+cR30BvIFbG_;%yocP-sM z_Si3O+d5lx@TZ@_&w_;~@B_xR4_a34)&x`PyR`#6@C3eu_TJK{5_54bcZCxpwsf_u zbSFion{P}8S#vFJ-}unkW4nff0V}FK-8vN83|O>4>n(q9H+c3_*dAJ4+S`sj_kFe=qE~!%QrG9Y11Rxq8_6 z>hJvRHb!MRX&^9Yg|?Um`rV!r&GlBaK$|yH6ArSU!OtBNwOFD?_L5z@%}&e7VP428 zx+?i5&QZ0;5NsvW%Yf3SORfA$u?WjiZd;n$&ML}v38 zc|qt!H?cimelBl{Z{i&d{Mv<&24xRI*4M=U$AI0yYkGwL1NnM~bnE9*g< zSQV9Fh8;0MYT~R8{nXHH3r}qAXk1~4iR4j&o>p9vswuc*l`wAp=w9$k--a4@>j&6g@S|VHJ;tt|KYjZnpZn_47HAEOm0vlD zxxq^(@we|`k#&HxXZ~8RAsx7UhsD+$^!_L?9*T2}jCFw>(5`)I?%~hYwY8tDDpz{OSN3naiO@&}JWATww;Kxtl`;5%j?mL7ew6e&PtUrefY&V{M=t9BW z3`J5xpAF@MDpjKu|A3bUaZ$9_D7jnjGqc=of%9}5f;b9!ZU0N;n8KVrkfP-yHf%1y@7a>$l!WF(e}oL;Ed@+CG#2a>jy zUrqXQX`+!B7N|%g7#9nfQM*%eF=4hp@Y6P>o|0rDu1o}?qcG*7!?^l7b^G`?Z{gcm zfmc;_K!L>__^B-pXil!b2lKp*9l@Qu{tO9q=e?C!g)ce`%ysXv4i&anQVu$9qi?z9F&^%_lOQ8vbKr$0?%Bg?Jlb>U2lh3yV00(e={Tqe zmu$6ZZ!#XRd6!@t@J4*fZP!dQNVzQ_D)m4%T5+-Q%%Y2rHlq2K9k z1l)eT>>3VIl{gWihg`STkoa)eLyQZ<%&=2&dWi<@ET}z^B7#(rcI0hkU#`?|S2(WL zqY|lB-qOl8Gtnq7*o>8nlo2hT0>nJN7j&;+dyN;rec|>4uRODO52LfzFImngf2s znjZKa_Y*KaK&lS7CX{E5!H?g5$3Oh>R&e%Tu)}76gM0+|(7#~&wyZmbB}R8uqk}L% zY00fVRVWA3lQ>z>^+Fb0e+r9&k3NCzHop1Pu?3kIyF3dX_!QyMmYN;#8px!EeKcFvayR@yyb5@xe<(yxKncj3p4EBmaEAHue7 zIsK3mJpC;ce2KMrrx_Xhz!f7U?OZVLoPhiYwt6h==~6@1H_8h>+r%FoPVChQF&-wm z?x3-<_8|BSfj8%=<@da28Tgj4BgU8e^WcMrF#*Um?94p0`D_#IdE?0^F6}h$(7eM| zu;Rxp#>3itp&ICC5@9XS4YUI_x>KX;7AZhlI>f-|2oiFo>LggX=kujAEh=Se73qAw z>x?EzTeh9y^pZq+dohcDRFV7KsB5WHvdxo1p*T2o0Y3Z$V`WB#!OPTB9oo(Hm{yBz zS_jYsFk`S1!cW2g{_@J*?IIf8U2lpo-d-*CQcNUO(gmg?bcu8*qXMg<6Hn7(Q75d93u(Kd@0NcLy!3FFFzS(GeAh(P%8Sv#D(0V+! z9eWVGycJ7;TidWjqadF#b`@5Py}z|;Jlfm7_R$@f8@uCgcNKPltvfMsvkAQC0G$8f z3U+$h;RC1fy^k+q?^_G+!oIL)&3k<=gmfG`zL@ ztk~zb+|eV{n62RDZ()bQtyS#E+GP?uHT^tzHi~TrmlbG>;IP3(C$&w z@WQcSxf536G_(Y zM{PHl153H#Xh4X)SiO_#>eW;zt`w@J_{3W=LtAibAGRAjLf}i_(*%C6@v3*HaZ5f3 zt})nFu#Lobf^V-tGXzcI3aF9zeQ0{tKApm-`T3qyANJ6C8P52n{Vns>T(RjDOnR9o z@WaN-a|es*l3q?nT4TzqOG+-{k4Wy6*cj)?cG<~}iL$LY7^&k?hviB!HcPqs4x4A- z2?-e`A0pc^uRYo-cl8nJlKq8=t6c9TC(wgV7Y?}sH(>r6Ke9LtJyA^b5DX&R&>uec zn+MSb+O_bI9U&RFZ;D^XOft${G& zYwpyf$$J^WJsRfnwzk`qX_Ny>31$jHuo5CN!ECZva>eVGbf?f%N?M&KGBttAraS&* zylx+R{H0o>uZX0HwcMGwnL;DS`qJOvNA_=I53^v9RQVpro`liqFW-ypUVw2koPQ+M-i~6` z8KGzXoqd(G8%*<%xgyv@VC9b>HY7iTZ-=6h0K1JJ0rGil+Z$H0~gH-wC)Y zm&F|m4^gWw6OHoCp&@`PYf!}z5+$EGV7zQ24o+o)BimR*cx_yH=L~@=@k&k{C}FXw zhVzO;%9VU|S4AP!e#?vn?wGOV|6oea-7Vo!7%%KxFb78(H!D`t8bds6D{#FNLNV*U z#rXY??nMHEmo50#9Z)#vg{9tz1s{EI9UY4Xf zO^-G*bw`AD7kYXqKz0M8PGnGbQNy;LSBj)#9Min%Tv99y+qq=cLG&UvX<%UE*ncoV zCyfj-58m_p_;&CW8+LT>=^oFi5TG#Uh+1_TPaisD&LRGg!+7pL9oaSVpnzkFHrkEs z`vd6dR`AF7VLyX_#d}1kk8sA&kMY`zM~xT%{zTC~V#4E6a-!ywu|%4!WCrZS&FNga z-mLXg#W>l>_=1x}WKhuS(IMlNlTAU$ugI-KLS48U!l>vIczJItH1qVrNWKVVTYP`V&SqGwru%T{k0oc+93O zM4;@{lNJdAGF)zGt3-2yOhdE}9BNjxhzU2F%#AxTi~|SRsw?M_ybd}OCwQvZF0{O% z6h*f47Qr*hc}Ct*g=3K!xyQu!(EL6?0cH<&c>XkUon~-&hedo~W)T-l2e(2n2JYs8 z@$w{wG2n$S;`f2yu|oF-Rdmtp4NmwJHH143EO+2GL(@LtdZV5~k^#SNX=cllLYZn# zhJ0`2sW~e)xx)#ybh*yB3aMx*AXunkfQbo}e7e$Olt`RQ(TYcs>`8(tI0-HgEOYT% zr?N5a`!=ojOjf8MvBZw)oN`iQXkt|c@yMl_&Z9PjS8cwbn1LeWA-M54tVFA|2;XQ- z%IWy9-;uv0v!R&Os#eHT#oFi0}sS{ z89vo%HnlKZ!A67_j7dHo=d)snuxM(lz)bi-z7QU|Jh?_YqqoU4Ew;!yUF;-;il^^Q z$&w#nKg8nqm>}WQ^a1iTcK9cqh1GNmS1(~Fcb#raQg@naJ_L&%pFFZ>bG1!hZ7g#4 z?tSyHjGue&8F0%r9W?por)Kw?i?ccO=>sb@1vw=5FruezF$+(rm9S?()oZCzPA6M@=d-sswd_Y7MdP$UU7^m8vvv-XNP1l=O61AC{=AGz1 z$~(4kH0z?HTqhh%iOsRZl11H4($R`mh}ad6&|-+1lb%p{*-`X&ATT|m)TqPZ)rGER z*C-clakxSy2UiI;n>{BQ#;y(f0joW*a8Nq*=1^kWdT0th(#DqWdDBY1#lWGBIXZ+@ zmx0od2JET=t*1B*9T0fgKa3p&Z~QgBux+Y6Gdy$qbS@w|0eruWuWW(Q0$2><-cuXx zGSld8%ny7I-COO(!;hXfvx7WS^Ta*9u!ApXire3-Y3Z_`vv;+Ap3*Hrw&%&$nP9j@ z$H#4->|!0xIvX8YMs2#5OH}M5NsK2GRJX$laV1NUxggU|g^;TQ#2##Z+Z1MPw83j% z!%ptrR9|SU+$JEqwyTK!XwMcnJ;utrPGLyR_oLmqIMsb9`Sij{fRh~@!Op`#!5;N! z@tD6al*_4*$kl7@WTilry2w!NX-kR<>oNYYuQ(2}=D{j>rt@de0!LH;;ZNx`Qd?l8P70Pr^qr#lMMO1j_DC(~2 zj;>V6k_~UV8VE;HUWL}lK$h~+9ROEm1jifV(W=BL3Qw(2?C zR#kcZnOPXTyJ3p;8BFcmv92Q0DPm0eLtc`alv%Aj@s~V9XU1ikY`}j5B0cZ^)#G5f zguQ+3Z#ZlT2Y-14)*cavwDl;qAKZ8hyYB?_)FW$;S5X?mZ`_#Qp`bT`Q!%n9D`L&p z7>WA0TPOx=k`VPZ)E?{3RVpmoOy}(6c-(WBdb(6eJF+m^AB^&>n97z#mMk=Kug zng}W!oj^rN7==%_29oy9`}NXMhbN<{Xwx5TtMOKww@U?1mh*JX9tGKdz)UP`+kll> z20Cv9BK8Dnz?ArRRcPUlpyGP67AX)l=Du9+@N zeHa-u^rkPz*j+?;G$K8Lnyr-^M&dk`D%!?HXN9bVCe11rp}Y_ZOx2W-U638=m_6dq zC2vym_-sR8I5m+cnUr0p!3u-LcPJ39f>=BRDUF-gPl1Q?5CS{?b$k~Bc)+LA_&Ia= zAN@J(esD2^Ti4_<*2fp7*f=0Xn6jQa0`WyOh{LF23juR9)o>8AJGd2LSpjXurbnn| zLoruBt!w>+EVB-}TNe9yMur8;5oR}bO?I!ns$+k$V~!Vj)r2YF?B0I>f`K!AQ&71X zUe6-FLZhiC)qcfBr~CaBP4n?ywA9trR77xilWMY8)kSimO-8YJSqLS2;fY`w=uVpE zsybWsR)ti&p36%%$(^ov$6lt#65|$l>9e>UoRjgTwHMxxeP&_nY=TVUfbr$ao}+Md z>ytJe>-ycsg2l(S91DZW{y5GKiDa~p2n{<#r=IZ%K|ZZS$9l9f8r3<*mF0w#SMCPL zq{SmQyY5`i)-1&95xc`yp+m`fE8yUhv34R`53euS5SE%vzfN9?U?w9~AQB}ZCxwTEJNqK?yyZ%pXD9x~qt*1rcQrp0Pzq)dSH zUi|!4B#g>=%mRg}EBj|HGtuC)nTo(dZhlO)bN*nEs3)nE&*ft)u5cxj=C}&Tei}Qz zmU#?&d2SA+yQY($Gt=FbXTAGpIWX*Vb_Jc*-zTlbDpzl$-JMFHsdtD#SgV%uy*!&u zMd|@}B~u;^N@ccG9CilTpj4ZbV=!6pXC%Gr>Ly%KU&j}wqEaszcNBl+NbWw4} zP;eI8x6TDG9x)onG7|*4Hvvdv0I=g~y z1cnKZoIe)zb>*--*>FkK`bhJO~?;Qo-eTf;Vnp z3#gW}ds@q}$^%K@71ns+sgtO7y0E1#2|x%yzkv|KZvpI$dB`FGgorIKOjA$rTo>~k zo(4{)q^M48oj!A#&e@}-8@b5H-w~xoGw*E3<4U$tng~MM$vQ0xtV3tR5}Ot3aUqv? z#q6c5EN9YDl}L(0(BjZ~HEAg5L^u;B0+0j}&DK*s64fL3PrrIsQ5wOo#*6dXf2Tr`r|>Fx_!@p-DHQ7$Rlc5U-@h)3Y*7#wiP4J~)-(5<&OUn0tRuB zS5`2$K|bQ$gLo6D8~9_juewcB)=*S|Ct~@yzZ)Og`XMG3t2V~Gi{xqS|i zdW`3vItBjrZy=I)pm`XE{C6%9GFIz^9Ru1p1ZvKslFSb9iO<1+>+f!1+Ydrl*yu7X z)(R;g%ycuYCqS^2w+$6xwgck^3>RPfJ~p@2DtBAfp^Unl8?cbIMq{UTpN83!U=`VM z50)JjlN+@5Z=c3o2f)|Qn4HDE;K?Q21HStVtlPf2gjYTlt(5QU7N%Ui0 zZ8++;e0n^S@bUdU-|vHF+pJrog2SFWAUZh3v(f`%(P`aUb2R1$lOl}i3n3fJXp-Dz z^p4G>xFDcyr(wT(23&dx+qq+Nrck1Typge&*m-WV87`xUm^M9r!rnErrjJ4<*yi*n zQ}zOpb5sf)2aFXMR+B6Psg`f%LuDJ`OQ#FD^q`|n{9$rDC|80?xSor%qfRfHu+#!U zhf?ds2F_r>Q7sdCU+BgyEQ;%|Aq50trBgtY})&@XbHC_d4l%3T6HF*@~KKH&SpuQVj2#_Xfo3JY4kg9 zauh-T3)rcJS-BNO+o>|<+&b$YU{x3&z4&t2O=$|YUV|u=?5?0VO+xdI8O!WTUF_1Lq_85Q2%Enq z)#UZ(V67gNy9j@|;Sc(o$x?&LjqOF}*jwxLE3Ovf8rHj{7AVCvmCk13?lG^}h!8dK z7F=D2-V9gUY@_F{7HN$xY3+nl;+2e&(tH_~LRc><$({qhY=?E(wiA8~8TW&)VC|iA z$o-o^HdxMKm%z3EhbjBV+1oeM?6<>?G|=msT0j}WV-M1hN{g`Ig*&z zTpE=r>oG`=cqR@SBvil8Uf&P?Jq$Td|41L+sOiP$X%zv zizi`W!uo$P?~z%n>Ds2>HmRHxxQUX{YtO(hM*{>MD2!T>EY}WqW1_>}4`)hDq0vR* zt>;sB&I zU{RG?Cg3SnDW+Mpm)y{*HT*FuLYOB0PDToN_p8uy|G{Bc2mJ#lEOu{rM%3vV{sZhP z1|EDBo0~IPRw+qFx;M2Uy&+=^Fq2n1?!PPG(~gXe9r9; z1QX+4%;O8Dy7sK-PV?QkLkv}YLwj0fDNC%HDvi3bFPIhVwn8EmjD-R=trqJ{bggBN z)8+Kk7Mo&kfooybk*{6E=fTB)#XPWfI9;K2q0k#ITwOidm8DQ}K#!B;B-QGdJi0%i zr{zelj`k+l+rd_Mt^cW+C;{8MaGUv&9caO)$rH+ymcjE)+@dGih|VvX*ER6<85f(y4H&q0kBFgU~LWjzrbv^{o2RVY74CfzQ?ft6Og5 zGTbnqqabP|(-o%NrN_grCF2YRO$WXa$^Q5Tw(ZRfq_y|{19kuhS2=9iSbF0!=-$M3 zf?xffsW$FhmSGe+&<~3Jax`CcqJniPId)BnV)JJ33$EV_b>LA2^DIt-VI-uAvM@7qh^6 zv(H%rByJ*#L9|dQ+g)s@oTTMJOsTZ(RjI|dp^ljK{B^}%kHo>B2-uFbC;th1_likd z-r`#Iny~6UeFUBN6)S3hC7ug~V7*pNF$2Lx+C9a1yzg+SO^xtWC0pNHYlkFX#TO+7 z))#70VYQwMwBh?yIh&9Am2QD(IQw2N6PhH#WWXVg3SF<-=PHlaaQoVi58*5G3sZ78 zAio7Y$=XLR?O$hmLn+oTQ9Tqzd68_)6Sqk@M$v?*TbDdOU%90BBc#6w7C($d=MeK7 zJb3{+iJv2a_~4h=h_^iwq$#crF1#EHERKyJiK(WC}rI&!zol8!Eia z9=A4qua~p*D+(d&lZY=zjN%;PPP^l5MmKzoDA=pvb35Px3rKB878<$2pAs!1Kz`f$ z764bj2oESgtG{F8t3z=8zd=QY=OvDAwju9)$KCAAgjmkdNwMy$)xxQg&F7aZUY}I2 z1uSC(U_`e<_^OG*Pb3hEN9RyHIt@5a9LJftEif|&*(b46;K4nxexY9T9GqqA=I6}3 z9d3Hplr`SY(}_}QC?!fwzeCc?&9a+FkBaG}1F{3pF_$5I$hW)vf7&MJXnJbrRA8KD#galJm>Bcq2|cf z$<~{YxBN^T!5zH1u|nWy@5Q&R{oGl+h$AwaOZfPCxT=!n~^$+ ziMuPavY5|Cy-__=k3?Ez1!DK3y0aOJx>Z?EQNDl{Ze;6`up7eCxk#62)W`iscEA@6 z->dt<@@0HwZHF7babbH?gXMjAmY`vJ(Z3e)`B`qNDfRyt*etthto!*YEYkODZTFM)hdy6KnO}PHZ*j^hH|yn<=PAxugNi8 z>hm$T-13qAz6ZR16ptT3-(ocx(nAyo3ryn)gsJT{rI;lOR=%l#r=NomKQsip%_pqZ zV5hVlbTkEdwUxWuk*$AI3%LG0%vMkfgKFCE&SavbSoF0tyQ5u{`<0;{3tIw(NUR`6 zi;1vf5YSt^LmS#ut|jzImTW|GuCG8T~Hr46p0;Nbg>yT`TB+C$L%ipahTP)+`WgBZrcFQ^ntPj3vayAXfe?0Yj z%)i-O6w|*#2KgMYU%|a^L*w6kxUm3tG(i}c{I!e4m?c!6)FfSu1uO7u7R+BPm0;W6 z4dpwvijCyGtq{$Wvklr}gZTuaJ<3pM#-DA@8<$a<$5&W@rrL7I3G zhhXhD8T^;9t+Nw-W^r!HOm&=|?ZTzmvp1dELuLu>z+x##!Qp`E2D6E+ii8wK$CoLa5p$4Ik9q34&DUj1Z4t39N z7*fCZzGH{(K7N4SfV@A*`WqhJe-}V*{w-zl5D|fWhI;)QBun3Ox^EJ{9&oKX0P`K3 zMxBSjgDJ=}-TCxRNCBWwCPfwD;X6x*bBhBt*mGt?GOIaU6JM?p56Ez3V# zel#UCrD)fasb-vcJC*v| zY$l*>Dk!E0@_m6SD&cNMvy?hXRq(lz70NC793eUsOoaTknj`P1^x1H_;vcy@YQfT} z+ecknPG{of3<1vs>t$6)Dx_Rk23Q1saqG}G%86Gng>Eq}{i)4G$a!;@?`>K?x0)?^=7 zjkVZJL@Ot=e!3j=%jtYSR;;wDluK;D!>7eUiJ-fgKG$yOE@3kEN2QEIZ)tMbV@7F! z$U_u(y|{hsrvQb>iJD&K$nRmE`+v%d$e;eS$MAR)Oja)z19DuTio8urxoweb+^@i*;Em_eS+P?QnXN&)95v~RtDO<0P=y~`?0Q)XKo(iHlcuCfA*ts*K4+VO*=C(HW6VHKIC8VU3GYddI2vqe7;gjypy|v`uMAYKCrZ@5MMGw_VYyW(8@3zNS8%rtR8C_H>wja zjN8?(_D=}))SI1pI^aWxy8DRz7Ug>SDj9>|qSSJn7stu|dbgX(>wU8w#s7SO1Mi773`PoRnBJHgW4iZ&Ybix9=XMvvM#Np`B8LMwMz z;X55)T>u?OA$QKyuR%AZ^d9XVOK97@pre>K_e=%G z1739eKXr0Fw9(L05F}eO+)1WNVO55rOZmZCU}$%VT_l%_YT6itdK#&Q5`KIG+@qW3 zDY)aJJjN79;AJw)$1TW@!Y2*Q%OP+_pN3jMdq6@B@ zBL)5wa(OH4G!)w2co*hy>M@8&g}cK6u<@f$LJKP4Go_R*2Q&2+gDc1Eqtzy%p>I4Ho5SpPT$8 zxmrqvD&TKUK^*z|X(-dO+ygIZ`Lhi8fMQ>Oi_ZWqVEZqGm^c%VB67*>4r*Gj$ zuKOM`68$2Jx!gYnuWH#m2~!$Ar@@yc9yDPTIbg-xwVa)UK_}PWfo2Dvt;Aj<4F^$2 z9~=TVwb@Xjig_5KbPa0Ren0+&oZW;BymAXh%p8m0trCwk;VAIMT{sK*+A|ngNb=ig zq$5_Cm;c9-^4yLP54?qECCVI!1sv|cwGw^l&Uxy4VLpeu@NlU0F<+lK5Fh(;aTg2FEN U^4%g?%)^^S>q0&p6{U`U0J|QBUjP6A diff --git a/package.json b/package.json index 7284773..ae25805 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fwdekker/template", - "version": "0.0.7", + "version": "0.0.8", "description": "The base template for pages on fwdekker.com.", "author": "Felix W. Dekker (https://fwdekker.com)", "license": "MIT", @@ -14,8 +14,9 @@ }, "browser": "dist/index.js", "scripts": { - "dev": "webpack --mode=development", - "deploy": "webpack --mode=production" + "dev": "grunt dev", + "dev:server": "grunt dev:server", + "deploy": "grunt deploy" }, "dependencies": { "hyperscript": "^2.0.2", @@ -24,6 +25,11 @@ }, "devDependencies": { "css-loader": "^3.5.3", + "grunt": "^1.1.0", + "grunt-cli": "^1.3.2", + "grunt-contrib-watch": "^1.1.0", + "grunt-focus": "^1.0.0", + "grunt-webpack": "^3.1.3", "style-loader": "^1.2.1", "webpack": "^4.42.1", "webpack-cli": "^3.3.11" diff --git a/src/main/css/nav.css b/src/main/css/nav.css new file mode 100644 index 0000000..e69de29 diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index ade1ebe..0000000 --- a/webpack.config.js +++ /dev/null @@ -1,26 +0,0 @@ -const path = require("path"); - -module.exports = { - entry: "./src/main/js/Template.js", - module: { - rules: [ - { - test: /\.js$/i, - exclude: /node_modules/, - }, - { - test: /\.css$/i, - use: ["style-loader", "css-loader"], - }, - ], - }, - resolve: { - extensions: [".js", ".css"], - }, - output: { - library: "fwdekker-template", - libraryTarget: "umd", - filename: "index.js", - path: path.resolve(__dirname, "dist"), - } -};