Skip to content

Commit 9e3ee15

Browse files
committed
Replace buble with babel
1 parent 210bb00 commit 9e3ee15

File tree

3 files changed

+124
-113
lines changed

3 files changed

+124
-113
lines changed

package.json

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,10 @@
4343
"license": "MIT",
4444
"dependencies": {
4545
"@babel/core": "^7.1.6",
46-
"@babel/plugin-proposal-class-properties": "7.1.0",
47-
"@babel/plugin-syntax-jsx": "^7.0.0",
46+
"@babel/plugin-proposal-class-properties": "^7.1.0",
4847
"@babel/polyfill": "^7.0.0",
48+
"@babel/preset-env": "^7.2.0",
49+
"@babel/preset-react": "^7.0.0",
4950
"asyncro": "^3.0.0",
5051
"autoprefixer": "^9.0.0",
5152
"babel-plugin-transform-async-to-promises": "^0.8.1",
@@ -57,8 +58,7 @@
5758
"gzip-size": "^5.0.0",
5859
"pretty-bytes": "^5.1.0",
5960
"rollup": "^0.67.3",
60-
"rollup-plugin-babel": "^4.1.0-0",
61-
"rollup-plugin-buble": "^0.19.4",
61+
"rollup-plugin-babel": "^4.0.3",
6262
"rollup-plugin-bundle-size": "^1.0.1",
6363
"rollup-plugin-commonjs": "^9.0.0",
6464
"rollup-plugin-es3": "^1.1.0",
@@ -79,7 +79,6 @@
7979
"devDependencies": {
8080
"@babel/cli": "^7.1.5",
8181
"@babel/node": "^7.0.0",
82-
"@babel/preset-env": "^7.1.6",
8382
"babel-core": "^7.0.0-bridge.0",
8483
"babel-jest": "^23.6.0",
8584
"directory-tree": "^2.1.0",

src/index.js

Lines changed: 42 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import cssnano from 'cssnano';
88
import { rollup, watch } from 'rollup';
99
import commonjs from 'rollup-plugin-commonjs';
1010
import babel from 'rollup-plugin-babel';
11+
import { loadPartialConfig, DEFAULT_EXTENSIONS } from '@babel/core';
1112
import nodeResolve from 'rollup-plugin-node-resolve';
12-
import buble from 'rollup-plugin-buble';
1313
import { terser } from 'rollup-plugin-terser';
1414
import postcss from 'rollup-plugin-postcss';
1515
import alias from 'rollup-plugin-strict-alias';
@@ -226,6 +226,46 @@ export default async function microbundle(options) {
226226
);
227227
}
228228

229+
function createBabelConfig(options) {
230+
const partialConfig = loadPartialConfig();
231+
const hasBabelConfigFile = partialConfig.hasFilesystemConfig();
232+
233+
// Allow project to configure babel with local config file
234+
if (hasBabelConfigFile) return {};
235+
236+
// No babelrc exists, use default config
237+
// TODO move this into a separate babel-preset-microbundle package
238+
return {
239+
babelrc: false,
240+
extensions: [...DEFAULT_EXTENSIONS, '.ts', '.tsx'],
241+
presets: [
242+
[require.resolve('@babel/preset-react'), { pragma: options.jsx }],
243+
[
244+
require.resolve('@babel/preset-env'),
245+
{
246+
loose: true,
247+
exclude: [
248+
// Disabling preset-env async/await support so we can use
249+
// plugin-transform-async-to-promises
250+
'transform-async-to-generator',
251+
'transform-regenerator',
252+
],
253+
},
254+
],
255+
],
256+
plugins: [
257+
[
258+
require.resolve('babel-plugin-transform-async-to-promises'),
259+
{ inlineHelpers: true, externalHelpers: true },
260+
],
261+
[
262+
require.resolve('@babel/plugin-proposal-class-properties'),
263+
{ loose: true },
264+
],
265+
],
266+
};
267+
}
268+
229269
function createConfig(options, entry, format, writeMeta) {
230270
let { pkg } = options;
231271

@@ -377,26 +417,7 @@ function createConfig(options, entry, format, writeMeta) {
377417
},
378418
}),
379419
!useTypescript && flow({ all: true, pretty: true }),
380-
// Only used for async await
381-
babel({
382-
// We mainly use bublé to transpile JS and only use babel to
383-
// transpile down `async/await`. To prevent conflicts with user
384-
// supplied configurations we set this option to false. Note
385-
// that we never supported using custom babel configs anyway.
386-
babelrc: false,
387-
exclude: 'node_modules/**',
388-
plugins: [
389-
require.resolve('@babel/plugin-syntax-jsx'),
390-
[
391-
require.resolve('babel-plugin-transform-async-to-promises'),
392-
{ inlineHelpers: true, externalHelpers: true },
393-
],
394-
[
395-
require.resolve('@babel/plugin-proposal-class-properties'),
396-
{ loose: true },
397-
],
398-
],
399-
}),
420+
babel(createBabelConfig(options)),
400421
{
401422
// Custom plugin that removes shebang from code because newer
402423
// versions of bublé bundle their own private version of `acorn`
@@ -419,15 +440,6 @@ function createConfig(options, entry, format, writeMeta) {
419440
};
420441
},
421442
},
422-
buble({
423-
exclude: 'node_modules/**',
424-
jsx: options.jsx || 'h',
425-
objectAssign: options.assign || 'Object.assign',
426-
transforms: {
427-
dangerousForOf: true,
428-
dangerousTaggedTemplateString: true,
429-
},
430-
}),
431443
// We should upstream this to rollup
432444
// format==='cjs' && replace({
433445
// [`module.exports = ${rollupName};`]: '',

test/__snapshots__/index.test.js.snap

Lines changed: 78 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ basic
2020
2121
2222
Build \\"basicLib\\" to dist:
23-
202 B: basic-lib.js.gz
24-
145 B: basic-lib.js.br
25-
203 B: basic-lib.mjs.gz
26-
145 B: basic-lib.mjs.br
27-
280 B: basic-lib.umd.js.gz
28-
215 B: basic-lib.umd.js.br"
23+
229 B: basic-lib.js.gz
24+
174 B: basic-lib.js.br
25+
230 B: basic-lib.mjs.gz
26+
177 B: basic-lib.mjs.br
27+
306 B: basic-lib.umd.js.gz
28+
247 B: basic-lib.umd.js.br"
2929
`;
3030

3131
exports[`fixtures basic-css 1`] = `
@@ -77,12 +77,12 @@ basic-json
7777
7878
7979
Build \\"basicJson\\" to dist:
80-
130 B: basic-json.js.gz
81-
81 B: basic-json.js.br
82-
129 B: basic-json.mjs.gz
83-
81 B: basic-json.mjs.br
84-
209 B: basic-json.umd.js.gz
85-
149 B: basic-json.umd.js.br"
80+
93 B: basic-json.js.gz
81+
65 B: basic-json.js.br
82+
92 B: basic-json.mjs.gz
83+
64 B: basic-json.mjs.br
84+
173 B: basic-json.umd.js.gz
85+
126 B: basic-json.umd.js.br"
8686
`;
8787

8888
exports[`fixtures basic-ts 1`] = `
@@ -108,12 +108,12 @@ basic-ts
108108
109109
110110
Build \\"basicLibTs\\" to dist:
111-
98 B: basic-lib-ts.js.gz
112-
67 B: basic-lib-ts.js.br
113-
92 B: basic-lib-ts.mjs.gz
114-
58 B: basic-lib-ts.mjs.br
115-
176 B: basic-lib-ts.umd.js.gz
116-
139 B: basic-lib-ts.umd.js.br"
111+
104 B: basic-lib-ts.js.gz
112+
76 B: basic-lib-ts.js.br
113+
97 B: basic-lib-ts.mjs.gz
114+
73 B: basic-lib-ts.mjs.br
115+
180 B: basic-lib-ts.umd.js.gz
116+
137 B: basic-lib-ts.umd.js.br"
117117
`;
118118

119119
exports[`fixtures basic-tsx 1`] = `
@@ -137,12 +137,12 @@ basic-tsx
137137
138138
139139
Build \\"basicLibTsx\\" to dist:
140-
211 B: basic-lib-tsx.js.gz
141-
168 B: basic-lib-tsx.js.br
142-
212 B: basic-lib-tsx.mjs.gz
143-
170 B: basic-lib-tsx.mjs.br
144-
290 B: basic-lib-tsx.umd.js.gz
145-
228 B: basic-lib-tsx.umd.js.br"
140+
235 B: basic-lib-tsx.js.gz
141+
188 B: basic-lib-tsx.js.br
142+
239 B: basic-lib-tsx.mjs.gz
143+
191 B: basic-lib-tsx.mjs.br
144+
311 B: basic-lib-tsx.umd.js.gz
145+
253 B: basic-lib-tsx.umd.js.br"
146146
`;
147147

148148
exports[`fixtures basic-with-cwd 1`] = `
@@ -167,12 +167,12 @@ basic-with-cwd
167167
168168
169169
Build \\"basic\\" to dist:
170-
202 B: basic.js.gz
171-
145 B: basic.js.br
172-
203 B: basic.mjs.gz
173-
145 B: basic.mjs.br
174-
276 B: basic.umd.js.gz
175-
208 B: basic.umd.js.br"
170+
229 B: basic.js.gz
171+
174 B: basic.js.br
172+
230 B: basic.mjs.gz
173+
177 B: basic.mjs.br
174+
303 B: basic.umd.js.gz
175+
232 B: basic.umd.js.br"
176176
`;
177177

178178
exports[`fixtures class-decorators-ts 1`] = `
@@ -251,12 +251,12 @@ custom-source
251251
252252
253253
Build \\"customSource\\" to dist:
254-
202 B: custom-source.js.gz
255-
145 B: custom-source.js.br
256-
203 B: custom-source.mjs.gz
257-
145 B: custom-source.mjs.br
258-
281 B: custom-source.umd.js.gz
259-
209 B: custom-source.umd.js.br"
254+
229 B: custom-source.js.gz
255+
174 B: custom-source.js.br
256+
230 B: custom-source.mjs.gz
257+
177 B: custom-source.mjs.br
258+
308 B: custom-source.umd.js.gz
259+
235 B: custom-source.umd.js.br"
260260
`;
261261

262262
exports[`fixtures custom-source-with-cwd 1`] = `
@@ -281,12 +281,12 @@ custom-source-with-cwd
281281
282282
283283
Build \\"customSrc\\" to dist:
284-
202 B: custom-src.js.gz
285-
145 B: custom-src.js.br
286-
203 B: custom-src.mjs.gz
287-
145 B: custom-src.mjs.br
288-
279 B: custom-src.umd.js.gz
289-
212 B: custom-src.umd.js.br"
284+
229 B: custom-src.js.gz
285+
174 B: custom-src.js.br
286+
230 B: custom-src.mjs.gz
287+
177 B: custom-src.mjs.br
288+
307 B: custom-src.umd.js.gz
289+
243 B: custom-src.umd.js.br"
290290
`;
291291

292292
exports[`fixtures esnext-ts 1`] = `
@@ -310,12 +310,12 @@ esnext-ts
310310
311311
312312
Build \\"esnextTs\\" to dist:
313-
470 B: esnext-ts.js.gz
314-
404 B: esnext-ts.js.br
315-
470 B: esnext-ts.mjs.gz
316-
409 B: esnext-ts.mjs.br
317-
528 B: esnext-ts.umd.js.gz
318-
461 B: esnext-ts.umd.js.br"
313+
473 B: esnext-ts.js.gz
314+
408 B: esnext-ts.js.br
315+
474 B: esnext-ts.mjs.gz
316+
416 B: esnext-ts.mjs.br
317+
532 B: esnext-ts.umd.js.gz
318+
464 B: esnext-ts.umd.js.br"
319319
`;
320320

321321
exports[`fixtures jsx 1`] = `
@@ -336,12 +336,12 @@ jsx
336336
337337
338338
Build \\"jsx\\" to dist:
339-
211 B: jsx.js.gz
340-
168 B: jsx.js.br
341-
212 B: jsx.mjs.gz
342-
170 B: jsx.mjs.br
343-
283 B: jsx.umd.js.gz
344-
230 B: jsx.umd.js.br"
339+
160 B: jsx.js.gz
340+
125 B: jsx.js.br
341+
162 B: jsx.mjs.gz
342+
124 B: jsx.mjs.br
343+
234 B: jsx.umd.js.gz
344+
187 B: jsx.umd.js.br"
345345
`;
346346

347347
exports[`fixtures name-custom-amd 1`] = `
@@ -364,12 +364,12 @@ name-custom-amd
364364
365365
366366
Build \\"customNameAmd\\" to dist:
367-
202 B: name-custom-amd.js.gz
368-
145 B: name-custom-amd.js.br
369-
203 B: name-custom-amd.mjs.gz
370-
145 B: name-custom-amd.mjs.br
371-
283 B: name-custom-amd.umd.js.gz
372-
214 B: name-custom-amd.umd.js.br"
367+
229 B: name-custom-amd.js.gz
368+
174 B: name-custom-amd.js.br
369+
230 B: name-custom-amd.mjs.gz
370+
177 B: name-custom-amd.mjs.br
371+
310 B: name-custom-amd.umd.js.gz
372+
245 B: name-custom-amd.umd.js.br"
373373
`;
374374

375375
exports[`fixtures name-custom-cli 1`] = `
@@ -392,12 +392,12 @@ name-custom-cli
392392
393393
394394
Build \\"nameCustomCli\\" to dist:
395-
202 B: name-custom.js.gz
396-
145 B: name-custom.js.br
397-
203 B: name-custom.mjs.gz
398-
145 B: name-custom.mjs.br
399-
283 B: name-custom.umd.js.gz
400-
215 B: name-custom.umd.js.br"
395+
229 B: name-custom.js.gz
396+
174 B: name-custom.js.br
397+
230 B: name-custom.mjs.gz
398+
177 B: name-custom.mjs.br
399+
309 B: name-custom.umd.js.gz
400+
247 B: name-custom.umd.js.br"
401401
`;
402402

403403
exports[`fixtures no-pkg 1`] = `
@@ -419,12 +419,12 @@ no-pkg
419419
420420
421421
Build \\"noPkg\\" to dist:
422-
202 B: no-pkg.js.gz
423-
145 B: no-pkg.js.br
424-
203 B: no-pkg.mjs.gz
425-
145 B: no-pkg.mjs.br
426-
276 B: no-pkg.umd.js.gz
427-
217 B: no-pkg.umd.js.br"
422+
229 B: no-pkg.js.gz
423+
174 B: no-pkg.js.br
424+
230 B: no-pkg.mjs.gz
425+
177 B: no-pkg.mjs.br
426+
303 B: no-pkg.umd.js.gz
427+
246 B: no-pkg.umd.js.br"
428428
`;
429429

430430
exports[`fixtures no-pkg-name 1`] = `
@@ -447,12 +447,12 @@ no-pkg-name
447447
448448
449449
Build \\"noPkgName\\" to dist:
450-
202 B: no-pkg-name.js.gz
451-
145 B: no-pkg-name.js.br
452-
203 B: no-pkg-name.mjs.gz
453-
145 B: no-pkg-name.mjs.br
454-
280 B: no-pkg-name.umd.js.gz
455-
216 B: no-pkg-name.umd.js.br"
450+
229 B: no-pkg-name.js.gz
451+
174 B: no-pkg-name.js.br
452+
230 B: no-pkg-name.mjs.gz
453+
177 B: no-pkg-name.mjs.br
454+
307 B: no-pkg-name.umd.js.gz
455+
245 B: no-pkg-name.umd.js.br"
456456
`;
457457

458458
exports[`fixtures pretty 1`] = `

0 commit comments

Comments
 (0)