From e366573c6e2eec498e1e897cf7ccd6896ba7f1e3 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Fri, 10 Dec 2021 09:54:50 +0100 Subject: [PATCH] fix(commonjs): do not transform "typeof exports" for mixed modules resolves #1014 --- packages/commonjs/src/transform-commonjs.js | 7 ++-- .../mixed-module-typeof-exports/_config.js | 4 +++ .../mixed-module-typeof-exports/foo.js | 1 + .../mixed-module-typeof-exports/main.js | 7 ++++ .../commonjs/test/snapshots/function.js.md | 30 ++++++++++-------- .../commonjs/test/snapshots/function.js.snap | Bin 20678 -> 20734 bytes packages/commonjs/test/snapshots/test.js.md | 15 +++++++++ packages/commonjs/test/snapshots/test.js.snap | Bin 813 -> 938 bytes packages/commonjs/test/test.js | 18 +++++++++-- 9 files changed, 63 insertions(+), 19 deletions(-) create mode 100644 packages/commonjs/test/fixtures/samples/mixed-module-typeof-exports/_config.js create mode 100644 packages/commonjs/test/fixtures/samples/mixed-module-typeof-exports/foo.js create mode 100644 packages/commonjs/test/fixtures/samples/mixed-module-typeof-exports/main.js diff --git a/packages/commonjs/src/transform-commonjs.js b/packages/commonjs/src/transform-commonjs.js index b1635e954..3fb8602cd 100644 --- a/packages/commonjs/src/transform-commonjs.js +++ b/packages/commonjs/src/transform-commonjs.js @@ -369,9 +369,10 @@ export default async function transformCommonjs( if (scope.contains(flattened.name)) return; if ( - flattened.keypath === 'module.exports' || - flattened.keypath === 'module' || - flattened.keypath === 'exports' + !isEsModule && + (flattened.keypath === 'module.exports' || + flattened.keypath === 'module' || + flattened.keypath === 'exports') ) { magicString.overwrite(node.start, node.end, `'object'`, { storeName: false diff --git a/packages/commonjs/test/fixtures/samples/mixed-module-typeof-exports/_config.js b/packages/commonjs/test/fixtures/samples/mixed-module-typeof-exports/_config.js new file mode 100644 index 000000000..3d25d8d4d --- /dev/null +++ b/packages/commonjs/test/fixtures/samples/mixed-module-typeof-exports/_config.js @@ -0,0 +1,4 @@ +module.exports = { + description: 'replaces "typeof exports" with "undefined" in mixed modules', + pluginOptions: { transformMixedEsModules: true } +}; diff --git a/packages/commonjs/test/fixtures/samples/mixed-module-typeof-exports/foo.js b/packages/commonjs/test/fixtures/samples/mixed-module-typeof-exports/foo.js new file mode 100644 index 000000000..ce0fffb75 --- /dev/null +++ b/packages/commonjs/test/fixtures/samples/mixed-module-typeof-exports/foo.js @@ -0,0 +1 @@ +module.exports = 21; diff --git a/packages/commonjs/test/fixtures/samples/mixed-module-typeof-exports/main.js b/packages/commonjs/test/fixtures/samples/mixed-module-typeof-exports/main.js new file mode 100644 index 000000000..b1f34e2a2 --- /dev/null +++ b/packages/commonjs/test/fixtures/samples/mixed-module-typeof-exports/main.js @@ -0,0 +1,7 @@ +const foo = require('./foo'); + +if (typeof exports !== 'undefined') { + throw new Error('There should be no global exports in an ES module'); +} + +export { foo as default }; diff --git a/packages/commonjs/test/snapshots/function.js.md b/packages/commonjs/test/snapshots/function.js.md index 4377db9eb..70584b812 100644 --- a/packages/commonjs/test/snapshots/function.js.md +++ b/packages/commonjs/test/snapshots/function.js.md @@ -3050,8 +3050,10 @@ Generated by [AVA](https://avajs.dev). root = window;␊ } else if (typeof global !== 'undefined') {␊ root = global;␊ - } else {␊ + } else if (typeof module !== 'undefined') {␊ root = module;␊ + } else {␊ + root = Function('return this')(); // eslint-disable-line no-new-func␊ }␊ ␊ root.pollution = 'foo';␊ @@ -4725,6 +4727,19 @@ Generated by [AVA](https://avajs.dev). `, } +## load-cycle-parallel + +> Snapshot 1 + + { + 'main.js': `'use strict';␊ + ␊ + var main = {};␊ + ␊ + module.exports = main;␊ + `, + } + ## module-meta-properties > Snapshot 1 @@ -7251,16 +7266,3 @@ Generated by [AVA](https://avajs.dev). module.exports = main;␊ `, } - -## load-cycle-parallel - -> Snapshot 1 - - { - 'main.js': `'use strict';␊ - ␊ - var main = {};␊ - ␊ - module.exports = main;␊ - `, - } diff --git a/packages/commonjs/test/snapshots/function.js.snap b/packages/commonjs/test/snapshots/function.js.snap index a4b13562912df2e388bf6f163352508fbd0b4da3..9a637b0f78efbc20252f51b2fa9f6550e0ac45c6 100644 GIT binary patch delta 19747 zcmZ6xQ*@?Hv@IMb9lPUn?2he@ZM$RJc#=0AJL#}v+qP}nwvF@cee<9H)J?51YmTam zRb$jzbJk!E_-76{AgnI@L&eU>!P&yz<%b&!JOtP-@m(KLKQ9~I8oU_XDYgu81RU7^ z4#*4sZyu@(3s=yhlvZf&6=Q+o<}l`zz=7MweECQsafk;ST`)bZhdTcZvnn_akvlyU9;o7PwUQ88&mxM zO+*BRmSyZ8$KFZwX&hxWZ|$sWjoPhildUjc_z<7RM|PfL%xj-#feDN&Z}S)m+V|1X z*;jT&mVuxmwnhd#$5o1=ET6k*MjLiviD?vf7@Dok>b=}b+#*^2n>bi?`;KQVLSe`@ z%hhcoAR%~?O)5?M6B|t8m5?2m^2psqrn#Jk zZMNx5y*0Y`JgFQKX8=UFbaecV@{Y*p$4t$Fq#*H{r626<%1xJ(D>nRz^EjRr(^ zK86>iSs$mygu=u)WtKW02lL$4u{A+ECsO_BaLJ53f6r zy@38Q>!cI7R}R^h!wSf?s@9j4;a+0>;;Wi{P9D%t{3^>e#Fw4AFyacoLyaqbF2^-M z(6r4JDx;>W5Q*3P{R)&-#mDM(581}oIe?bE@#9_s*8lHQh+Ok^)e}dR!Sy{rnT`%! z0hvQ3KUZ&CHbwB-Mp$?8#9y~p`aQbbAeZboiIv@Uh@`FSYowv8v-WX||4Jd{VRwZG zLIgzorM>V+apm=HueG^TLbQ$FP=hOLK4$@ z*cPjoj2nU%b6Q;nwj>)froJX!qNF zLZi%OXDrSdzVEw8OGp!+hr?yAP#@P0a`-d#TXVec7nf6qm0kD0rbg*1XVCzcqJgx- zwY@;}sbp>Bha5j7Oi>TMWBYRrlTuR=*;$~=P1j4bDb0B4DQt@q7a(#gQ@Ot z`SEpL=DXOI_eYDf3zXhsp(T(rEtL_nd9!QX=B42ET;Xj1-Y$Gx>=s+=R<=}_F8FcQ zC$Rbu?oAx2S4np4&2$iOlw8j9Sh3-*Rh5deUhUHyo$Z`#rG4>U*oT6{^1kua(bYFD z_C(y67@hr{oZa?bz3Kep+-Jyt49Bx4Di@LdJ~Q6kS7o-XaU}Cy2Lg0vNG}T}gu+J~*_H`U z8OtS$wY0-e$UX3%~dM^PA^{j`aq9Q~m;_K)|{sarpw z%0A_{u4h7YHUiOnJ$IWJ$}G12^8zkMZd`@_yb+q&TX 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 delta 19573 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 diff --git a/packages/commonjs/test/snapshots/test.js.md b/packages/commonjs/test/snapshots/test.js.md index 86e1a2048..1b1ebe464 100644 --- a/packages/commonjs/test/snapshots/test.js.md +++ b/packages/commonjs/test/snapshots/test.js.md @@ -100,3 +100,18 @@ Generated by [AVA](https://avajs.dev). ␊ module.exports = main;␊ ` + +## does not transform typeof exports for mixed modules + +> Snapshot 1 + + `var foo$1 = 21;␊ + ␊ + const foo = foo$1;␊ + ␊ + if (typeof exports !== 'undefined') {␊ + throw new Error('There should be no global exports in an ES module');␊ + }␊ + ␊ + export { foo as default };␊ + ` diff --git a/packages/commonjs/test/snapshots/test.js.snap b/packages/commonjs/test/snapshots/test.js.snap index d685942af1e2eeb399872b59de8d160b69b56c71..68529726427894ada7fa0377b4fea98960699f33 100644 GIT binary patch literal 938 zcmV;b16BM%RzVogn_g;Hsk_CV>XTMj5h)+ByTym4mI@p!jkK%X)DCgWJEH`{>cb z_dk6xc=X+cia{T1%b$;bj&}Pm{n)uNdHFN(cg3Iwo0j$K?tveD(R}CIOWpXDZ=%mD z20j10Wo=q#P0q?0>xGSb6(>y)5+$RdayqtseQ=0F)rhKR( z!66x^VHo3ODcRg*`dxz)8z2-C+!z%^6v*ISjC`cVumi0Qp>M)P`t0oF#{q_dCkhVf z^fji&UKk4@U9*&o2V&~hpbl;XuS2UwJhe;D#O+1>MxLQ}*zc2nuiTVy)bDGD%+B)i zRyq4E^3e5qt0-ZsTauv=u(w6RvNTp({lc$Pn*J?--|E<_ZL8o~*YfJcK-aJJU~O;) zPJ>nhS`8gLTWbwjJkKKsW0{(UdIggOvs07uz|#Jq5Zk)sH(HCV1QB2ighe5^YCb~| zLK*JWZWo-C=OYz3dB@aPieun-40}>itDKu-lvL7Kq;UWP1TJ6{ivf!lafmtNuy+7C zU5DD3mCDj6Y91_sLSV?&BZ(pPe7Ogog)$+`L6zZpqwM>g)AECOO zj;6>J2Jf;dCNnlfm*;{QbtxkE3LYK1x*{f-h+-LPOZ!x-+J|ZJ%M5OgS0$=catJ*( zo5gcijiW?Q^C;EH6B4dk&Gd_TGbxnNIdqui&I~+YOog!GR|a_c-N2r>6;>_L(#{{*IFJw#?vju0kO!kYEh ze1HGF8+*QAZx)n8iTEM9l+E{z=)T_up2jh;DÍvU3rn$>3gt!2okj}_&v{r^e+ M2hUKdAEgEW03LwJqyPW_ literal 813 zcmV+|1Je9KRzV%HI00000000A( zR6B1IK@dLYA>`|*d1w?O`E2ZS(%K3kQbH&Qi2_vC>9n@z?2XTRW^XTGB3DSM=pv{< zqM%5JfC2;^KL82-01^#|U%~9%`4I;YSn@t*_nU9#+nE!FVayq~A6{E|Tc)!QSc)ZTaW1f zY5kVVpOkOBUS07ozTl5DvDKM3j9KGM>^U=UoSiw&x+>Lss_@3T4yuBGFJh5D>N_&+~CjO4hfS9`kTu0(gN0%SQ#A9L09qN6}JkD8X`- ztXE)(rcx=n4$ufhs9=w7Z!y)jJwFJf6)zk=Om@w4# z9Eb3=;bv&&j-vqsbC9Gr8MC`g2%WDzX(ij_mSji;tSykREb`TYlj5qwqrW+Dm#gOF zvt@AV)spOky3Swg!77le=Zdtd)2fj(2UAZ&C$?=9AU^5F4{E28j3PThS(~EN-Xz|Q zxWvW9CBlqSJ4rRZ^KV2mA7-YQM#a)XwHCFyC=@ntvMz=_)<8=nC7>xi@+j;yj;fjE z9$2d1!@$!=6yng;g2rUC8p8-PVz3f>R-%fe0MBNdrWwCb6aW zNv`dCV#u?OVMFqsqP7r4=)^hvF`!Nnni>zQL+R) zNAqL{S};u+59ukZ>W)fEH%?g>QM?$I5Qbf{l?#_#cjwOThU*r}X~>>Le1I0Qxo#}F r>sCNSzE4r5^2L)m`Y4^K)pFtL*yZobin#OtU&+4!O?VhP%LM=c%=(JY diff --git a/packages/commonjs/test/test.js b/packages/commonjs/test/test.js index ea0afb695..097f1a6df 100644 --- a/packages/commonjs/test/test.js +++ b/packages/commonjs/test/test.js @@ -331,8 +331,8 @@ test('typeof transforms: sinon', async (t) => { } = await bundle.generate({ format: 'es' }); t.is(code.indexOf('typeof require'), -1, code); - // t.not( code.indexOf( 'typeof module' ), -1, code ); // #151 breaks this test - // t.not( code.indexOf( 'typeof define' ), -1, code ); // #144 breaks this test + t.is(code.indexOf('typeof module'), -1, code); + t.is(code.indexOf('typeof define'), -1, code); }); test('deconflicts helper name', async (t) => { @@ -717,3 +717,17 @@ test('throws when there is a dynamic require from outside dynamicRequireRoot', a dynamicRequireRoot }); }); + +test('does not transform typeof exports for mixed modules', async (t) => { + const bundle = await rollup({ + input: 'fixtures/samples/mixed-module-typeof-exports/main.js', + plugins: [commonjs({ transformMixedEsModules: true })] + }); + + const { + output: [{ code }] + } = await bundle.generate({ format: 'es' }); + + t.is(code.includes('typeof exports'), true, '"typeof exports" not found in the code'); + t.snapshot(code); +});