From 627f801a38a86cf0a5d0102b8574183416e92fd1 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Tue, 24 Nov 2020 07:12:21 +0100 Subject: [PATCH] fix(commonjs): Improve error message for unsupported dynamic requires --- packages/commonjs/src/helpers.js | 4 +- .../unsupported-dynamic-require/_config.js | 3 ++ .../unsupported-dynamic-require/main.js | 8 ++++ .../commonjs/test/snapshots/function.js.md | 36 ++++++++++++++++-- .../commonjs/test/snapshots/function.js.snap | Bin 13335 -> 13684 bytes 5 files changed, 45 insertions(+), 6 deletions(-) create mode 100755 packages/commonjs/test/fixtures/function/unsupported-dynamic-require/_config.js create mode 100755 packages/commonjs/test/fixtures/function/unsupported-dynamic-require/main.js diff --git a/packages/commonjs/src/helpers.js b/packages/commonjs/src/helpers.js index d39ca3a12..9ccea94a0 100644 --- a/packages/commonjs/src/helpers.js +++ b/packages/commonjs/src/helpers.js @@ -54,8 +54,8 @@ export function createCommonjsModule(fn) { return fn(module, module.exports), module.exports; } -export function commonjsRequire () { - throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +export function commonjsRequire (target) { + throw new Error('Could not dynamically require "' + target + '". Please configure the dynamicRequireTargets option of @rollup/plugin-commonjs appropriately for this require call to behave properly.'); } `; diff --git a/packages/commonjs/test/fixtures/function/unsupported-dynamic-require/_config.js b/packages/commonjs/test/fixtures/function/unsupported-dynamic-require/_config.js new file mode 100755 index 000000000..b77e73bbf --- /dev/null +++ b/packages/commonjs/test/fixtures/function/unsupported-dynamic-require/_config.js @@ -0,0 +1,3 @@ +module.exports = { + description: 'throws for unsupported dynamic require calls' +}; diff --git a/packages/commonjs/test/fixtures/function/unsupported-dynamic-require/main.js b/packages/commonjs/test/fixtures/function/unsupported-dynamic-require/main.js new file mode 100755 index 000000000..375408ac5 --- /dev/null +++ b/packages/commonjs/test/fixtures/function/unsupported-dynamic-require/main.js @@ -0,0 +1,8 @@ +t.throws(() => require(getRequireTarget()), { + message: + 'Could not dynamically require "foo-bar". Please configure the dynamicRequireTargets option of @rollup/plugin-commonjs appropriately for this require call to behave properly.' +}); + +function getRequireTarget() { + return 'foo-bar'; +} diff --git a/packages/commonjs/test/snapshots/function.js.md b/packages/commonjs/test/snapshots/function.js.md index 53f42c9ec..bc26d3c73 100644 --- a/packages/commonjs/test/snapshots/function.js.md +++ b/packages/commonjs/test/snapshots/function.js.md @@ -5477,8 +5477,8 @@ Generated by [AVA](https://avajs.dev). return fn(module, module.exports), module.exports;␊ }␊ ␊ - function commonjsRequire () {␊ - throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');␊ + function commonjsRequire (target) {␊ + throw new Error('Could not dynamically require "' + target + '". Please configure the dynamicRequireTargets option of @rollup/plugin-commonjs appropriately for this require call to behave properly.');␊ }␊ ␊ var foo = createCommonjsModule(function (module) {␊ @@ -5505,8 +5505,8 @@ Generated by [AVA](https://avajs.dev). return fn(module, module.exports), module.exports;␊ }␊ ␊ - function commonjsRequire () {␊ - throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');␊ + function commonjsRequire (target) {␊ + throw new Error('Could not dynamically require "' + target + '". Please configure the dynamicRequireTargets option of @rollup/plugin-commonjs appropriately for this require call to behave properly.');␊ }␊ ␊ var foo = createCommonjsModule(function (module) {␊ @@ -5543,3 +5543,31 @@ Generated by [AVA](https://avajs.dev). module.exports = main;␊ `, } + +## unsupported-dynamic-require + +> Snapshot 1 + + { + 'main.js': `'use strict';␊ + ␊ + function commonjsRequire (target) {␊ + throw new Error('Could not dynamically require "' + target + '". Please configure the dynamicRequireTargets option of @rollup/plugin-commonjs appropriately for this require call to behave properly.');␊ + }␊ + ␊ + t.throws(() => commonjsRequire(getRequireTarget()), {␊ + message:␊ + 'Could not dynamically require "foo-bar". Please configure the dynamicRequireTargets option of @rollup/plugin-commonjs appropriately for this require call to behave properly.'␊ + });␊ + ␊ + function getRequireTarget() {␊ + return 'foo-bar';␊ + }␊ + ␊ + var main = {␊ + ␊ + };␊ + ␊ + module.exports = main;␊ + `, + } diff --git a/packages/commonjs/test/snapshots/function.js.snap b/packages/commonjs/test/snapshots/function.js.snap index c0e2703f1db601742f0b4ee45143acf11dc1d419..92c3ca9190f3e788cc028ce61deb87ec70e77c89 100644 GIT binary patch literal 13684 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 B)))W) literal 13335 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

+FktfmeTcz%|xbkSrp6NGI%!X%3$A7Ci=f;#|BA z2}$aA-MXa-t(dh_b+crZl8!Oq5PF6QNi?6EE^D3qCW|=1^Tz2hY@TZQ$Hau&U!!qD z`am80nZujl`@(d~a5e9gAVGgqkaSX#ae^X!u_Y{qW>{Yo^B={LaM~EnG_{MWPJ}zJ zNPE64Ynr*ZanlxtG|4U$wAy0aWOE3F>87p&st}DBL-@)7(vE=2Jk*AUr4-Fu3^YCo zdf3#2b_!Xs3D$7^HtSBk9g(M3sJH08;m$c+gf@9sA_OYBL5C++8wK4CNqA*u>Grb}XC0J9^K4c`Gl zj217ZL+C;9cA@4sZPvM&~Kc0;=d@SoWbxC ziF?q@_(I`i{~W>pU&f-92r^kQD>TbF7tw{9!SDscKh-Y8vV9yc7u_P&rHPOOb_q%K+B z3ysr}SMEt_=8i5z*d))AV?`m%@0QtH^2XaHHP@@Mukod$(k^a?X^oV29)zrj6Timu zm+1_BoZV5e)O8Jf0Z1@^P>z{8b-7*VpJ37+qR9j!rsW&@dGS*Oc3~e1DT&(f{Dqsm zCvR8bq!-LDzs~*HouDL$b;-C_s@r)yH-Y!s1hE!a0szYX0Y%pXx;XWoXJ~lVE;+wx zm0ayI8N_hW09$NJkB-iB;ewsX$UL-xc3cQBWY#tu`W8_63g3*wh{56Ua7lm92^w1G zyjXSR&Ai;Uqbc}FDYtlY+Qz<8w~cZnh#ToDPrQ4J_jc>vge2rDTGPOg3%~M?tQ3w? z7hm#O+d|alclz5hh<=LjdDjfU<2-9i=z11fy3urXn{i;ZyEG}+pP%Z}?=;Sr^N=zP z-UcII0b$+4i2o8stMasb-8C~HvFC);HINxf%=L>6+eGZ&W~+FsL=I~fDU0DI@*i+t zL2sm8P0Ch1m=%JESdjv>xgC+};@BCRW}SDgE;D4|EZciEOfh+$rSSckmoH zlS*cnp(tD@CXi$`#5;?T@Fqez;TdW&MoQt{m1>OAU`fAa_g9qkD+gofDdVx|X`Dn2 zK=TUx>v>jJ60`nshbH6GIJ$m;BpW_;XfvQHqepQ;eFe3kkoElDB^Yo(S>~3gyqi{a zUSLv@5K28?2x0G2|@m?-l)xO?B+tm{XgL z5*h6CQ#Kebq1(BlE|A;3*tnBj)h!PDP7+}|DQ&Ld)MN1is`T3fC=)I7VvAGan9X(xTA&oUca7uG@ZgOX!Vf z1|rgcdh^B-s)91xT7oMWA1Ia5Upf`sg!&E+h(2~XJ8vel73=P9%FZkFdkiPy^`U7nm?JZD?uZB*A%vSbuBu#JZGUk ziKz>OU8umwL`03kpIFwQ!G#ECcNXi-#o%*W!~~yhaZ<2I=`F;V)auvDoU3^=S4l8? zlx2m{Z@1FrD9hs-) z!S4Q<6K|pW1(Q+?=IM~|F1%q3z3H_GTLy@{FKY{b^~Xw7hKN~JB(^4LH|ijq=j2X% zG(rRlI{%Kz12BNW4myRZ*Wvc5#(!&u=%CRMuYD$le>;FKBM;!RKbrG*G)_b6{CXKW zDy*{k?`I_I^pOyNj{099=9u5PibnivYAh4MaDokX@-_(Xq1Jf$DyHf!mVE1!Sba<5 z0yP%<(-b9>;>f6V9d5E2u7dbVLvvi?oat{lCjA#k z$=py48SNvSn&htoOJn=;PguZ1NJZMOELUb?E$|YBcx&6EqtxRb8PWQdvr@{ccPaw} z{BFx}UyXHJ;Dagm^Ezbjr~h>(*eHdoqvXacO~j$t&qFeVK9kTj24syHuZWxo3AMI> zxOo*dTwiu1nyhPfcZOM%rVZ>mWIaSE4gseX%_7cZu01K?-}}`nx^|R|kgU^K){DST zYg;v6lKoCq#?j;)uTIBPArJDv9xLr_R(gl*bPlOM+2pl!IdTfC~fIdzC#l9|NKSu`j zsFB_xvZuS9FUK%x|CDa)T;h&}aPLT)+M5o*&eqNTT65f}HLIWk;f#PU=j^v@YBZh= zDTh6Xi5eZ-L}$7wfb0dT=-8HQO`ry~7~>Uf2m9s+8sl-{Y&Hrkr=nFflD0%7j4q<2)pV07{8vdim53eU%eX zw9z(}5jQco*fHwherQ8UDnPYZB$qGOdBd~n=qFuTlb*(QhZ$#OzWGK>CsZkZEhY#A$%&P|af z4Yfy-RdeTGw<0NHtDCAR42uW@G)pz>QS7@4bb12?jhk}wW>3Tyyt-iti-C~}! zM1n+zJy;YExmjM1IF)kHp0(N4msz+~%p$+eg$|J7z;y(sOBeb=&Lh{3SjOTe?{#tW zDH{^mcq>FLQ2^YBxo6zh&`6<|G;2GRxu5lr%LKtn7S3qP{|M36#c)X~gS*#)<7{Qp z`8W(tpd9MR+t+0hcL|W&Cd$dWqy-)RdQYyla&9i&yrj-onmw9fXwK+hNgp5EfWOZR z-F}l7M${L=j?03BS!iC% z%Aeom8Ps2<_3i)*HGtG@`?mZdv5Ovx8oY#Oj1qSmLA&w>D|MOiYbjalJ)cUbXO^yL zeV5K+l`d1FiBq;pZ8J{gej+mPT3JmX_eEGpiPCQVuuz|pDist~N=eRA%)GOb1LtuU zeX|*Y1iCiT_}&C!6D!Q+fxN=d#!RgXr>w z;@a)H2R0z|EZZ7A`qrCN8)G^d@u;nCvYs%zO|OdP8Is(iT4df6^++}4A4UadaA6;k zyMo$HyGG^zC6Ne5O|}vcS5k182No9VYJ-+<1X{I*2pw3w?OQgeT`KUr^ohx)Y_yO0 zeEdDM;+u~lN@joKqK(b9A6NEy3`IWWVMJ<2Q)5g*INy(DwAkZtoa7{Ad|z8IzFhcr z_9I=PboQH%Sf=cqa9EFEfAEP(m_E;;d%@r_?1p<~w5em*?Php5gn4Udu;m|*+EnS!riSFEk<=f60Z`c~u}( z!^Oc)1=Sp?+`-)>!n$HDC{*os$qW|V+243crY@!2VQZG_#SM|Rf8qXX5sU3~Flu7< zBg~&$+0Fw|#juKt$e%fkS?^uSjOow~6Z7|6&Eva3{4*}iu#0`U4XN+css~C>TK#uu zu7vqaYR)aSHS*h1uU6_H9;cXE%Ls3vkzKh4I?Lj*dX;B0IEsXmbf#6yH#uo;7tx!I zGialiU}1BDuvnqg`rj1y6}Nb_6^sOF8-Z(k2}Pfjm6x4|J~&uB=+mB$gfDb4na#Kc zmVCI)+-^7mnKl71g7-{HHb(D`LPn-*BB5ohycY;L1~|aK1R-a>2DvL1Ful1n_fN`> z^891Q`McA4$W#bzXu$QAR(?I*xQ;jY>ffRPdN2-h#qY6VDffAjgRtV7t6C@!R5Qg^$2;S~1m_Rvg~)5`)b;r}T+E`w@MbbA630+8zRyy9{U! z!>fISrEJ0^BBjRJ7`rW!Vteg`1iRKI8(Zs0juV4epIRMJGQ)D<9u)e~=#(f!-{ zDeO+|PE^D<{8l&@~zj=ws>>kCCN&I@x#LKCuE{t%Cdz-B4H_vsEQ419 z+2=4-f9m|F$lWYgQCZK-A>E@uZ?d~ti0a5ZKbL$eTff8iZ`}Fs`1BAH6w2uJxKp>b zO1;N!4$&(b95IG-!rBRK*xN0$)l#V?VuC=dd`CF}yqJ5^xZZyv9Nw_hrT7h+V{F5Y zONCLxn=?VVwc;$j=xT!JhyYu5u*nF}Nt^N9SDy|QVC1#q)kZrC_w`B%KhJTWi<)Uq zNGcI@YP(L!$w}KuvTD8{Cc&bg%28X0L$xONKkbVldwh!cb>N}9gspcMu3iz?ApGAP z&U%Ur9K*Cq%_uFLqv88VDid(#I;+R6gfy3uPOGEglabRyuXy*FNweZCt5J%_uoPo0 z!a>xqc|i0kHh^^-zx08j?)foAyb};D5eYd-_+*)&23}^j1u^MGwXqk(Y&|3yir$#v zJPGnI+>}&bPQ9m&q|u=+Ta&oF1Qv|fHWgGm0VZP0QrbagrfHl&3lNP%y10T9=7nC_ z{Cg4S+K3;80k>w0*KFdP(wH@3yMdsNVB;#e(983%YN^soQ`{Urrvf`urrIy*;Z{^F zeAg@P`@#@}k9PT+*n8@e(zzQD5KK%O_hA87-9A8n{DPUn9ysXm$;bC^TXe-d)lZ%2 z!mg6Q27wyZ-bFkd<1i;5o7S|u&XP%8LPu!7`1fiAGR2(=DwN!E5QiGR+O=*insZ^` zk&ZF>0vQW9*)Cmdn3zyJz6wWlaWc2RuLPai1{tvy0au29NG?-Ro|>2Pv((xOiA-?` zSklh!?X%olq{L32!UB`mSXu>NZY%gxuthxgy9>F(N(}r3p=x4hB&zwg;eT0m@zh8` ztVFastlsGgEiw3>rFQ_!jKQsYX{!XTf}^>qh@OwSHFA;kYL+x_9-~*2(eS?x5>Uvs zA~;sg@#NO0mUR$po$v%_J&_Zb zE#?4q9(G@$x2$!fp6t@&P1&&>cMD|09DB(#3h7C6`T8$ zYu5-RmnYkk0DKUSr2_tOk<>1GjfS7{zkPr2*B^a?WZv9qD{MDM%#Af)N%b;>vl$w$ zH3_z2^((|9jR}QSB7~OhzIlF{mv5xo4-bhW%%%LcSUWx1l@oVa^`_#Lj<+gIh)SIB z1?3$l{0jFtWeTPe+w~Z{c;JoI>j9Pg!xnj7IRjO}_m8?i{j!F90jFOs)&oU(jPKDsSf|;vC?8yglkh} zsBxvl2CJ6Zr+Qu*bAAd1$oOtMzm~el9kVl7sxew(Stvf0D5bEJr6}^BZb#1m6Vj@%J*ui2+Y`BiUwi!eoOzVA&84&i&iZ7nsN}up&3#B z!@s%HVeuNORC_{9pp)k*s4ZmeP`?&XJLZcd9_IyPnnRM4<-?uBYpS4j$~&5P*!w=` znPoaO$GHF#h-Nszq|#_Gk={AU28~bw%KHCX%j_B8J(w6@C@|Md;DUU#^O1SA%EAuO zsUDaea*btvlW_UC&0>+W5ggL47z(2I6r@sb0!w4tJ7i_ORZ+gC(%Ta(NWlfhQ%;fY zP=b%q!YB=`#*g#5T8R>gP--?_4ydHDLq_i6fq-@Qfn}jz&*>v*%y8hVq!*WxoYOlq zmyv=k%pTbOh8moD(T!33`3tI9{SDF3%aNlkcDu{_e`L$yd>;$rMem?|@?9s{bAT5y z!PzXzPb9T4Gp~z6C?|b23}F>8L%scOmoH_4&=gPUEmz@6Ll@9N`6|6pO&kx+0Cmk? zyWU~Vy#Gt>Z-z(E-kuTeQu40n7$(PT;`DDMFEpp?Ksj_xs`AA46Ep5iL@#9yRKSvV zsPaEc0&+o3a|v+D&!}BE4N^9%d>xc^A2VMu#Z*bc`bz3-&%#!DW+})TRYepQgAp|+ zcgFV>MAAFw$!%uuEi87Sx7EN*AILw zaM`FiIQCaL#Cs41c@8vm=DcKQ4UN1}@gBMzOuDnhiDki%Q}FGpYC9nlnmbP)ScxGdxrCJS#R&^FQP5U~)>f58ZI_==S1rNEJ>#go25SzP_i^500a5$O9 z((W+5=|uWBdTV!&)ZmsMR<2SqFatk8xp5bft_J%95j*e2-Iz`vE-MS?S1!Rpv1_ z+i{>S?tobCQ6cr2#3YXpDsFrtZ3-i_(3}`?p26MzKLMBz5R)==a@bKRe*)g79BPwv z#aUs*Ps;N$BG;`JWT!Xs7M>DrAx{a_1j*&AGOjCyYV*ufXZB#oHVjOWEPwEk}k;|x<5pWC%fU8k3~ ztB%8RT?>uAsQNA@8RX|8uRU+V4FKFED_1hYkL$f`xdiP1$M0Kgw`VITRM}I{4PkU~ zs(bh~2DKY2aX(oqbDPBC1Y~E)!hJgbg%IRO*QLvMbmjd>4!87zbNbgKj)|;quRrWC z7Tgb^9Us(+@%h(jGaF2UwiIkH-q1mA=S!#`s${Rsx;3=k*!;d2C)LFb!?DDmUu# za^2zFx@1aRibD$1F>hoN+)yoWj5gZa6Ym9$3I)|w%jG19W6Vs^PEq7M!qV>UY`i-Oza!&{xR zU<}|ORG?r;f*DBPOx?F&Cd`!*j-~9-p>ixAa|*=m3)$e#_d7P&30NgAgC~goE!tRu z(=#Ey?L9Y{19j{%QAY5EmN9Z2lQ(Qxc-Ab6OC@@z)OkX2Z7|~lsVAiHdet93)qkb? zbg86Qi)YY*CDEB_S(;C<3^u@a+v0G7z=WEjaoqgyX%bQ<0i_O|P`z?R|Ho-EJ|X2< zG8u{6-niPH^;QIWy&ks4GG3Kv9g;ufYLh_BFER!^3fo-HuhqX_nErQ8*tvjA)0?ip zf39q~rk2fsW?f0obpPC7Q(xJ|rhDkF#S+%}kN^ zij?ulbuET2v9!)vdb_n`i9-$(gdIVOinIev%ZPNu)s zqn~mFuDfvdm^yxzUVM}_QoZn*=s%;eZMJ3K32)_$zS4QmC9%yW^<*)}xR?wI-ybMA zQ2-qyH#2?d7=}X0oYrP}sPDKTw}Wa=Og%?z@tbF+NwmrG=iRO{H3ix`+pW$P0pD)btVih z{u6=mO%n$eNVtj=Y%!hlJ$vd*F3yej+mHK`Ir;30R+3HdP{->lxG3@NEa}I%)BDjn z4xJ{^j`Rw&JJJgal-e3>dZJHiCMbt8mT3P9