Skip to content

Commit faa8f46

Browse files
pascalduezvvo
authored andcommitted
fix(build): missing babel helpers, true esm modules, simplify (#290)
* fix(build): remove redundent Rollup Flow plugin - This is already handled by babel-preset-flow * fix(build): no longer override esm build with commonjs - Use Rollup for both cjs and esm build - Don't re-run babel on top preventing overrides * fix(build): Don't exlude Babel helpers from bundle - Since only the typeof helper is used, it's much more simple and efficient to include it. * fix(test): allow ES modules require in smoke tests
1 parent 526267e commit faa8f46

File tree

8 files changed

+32
-57
lines changed

8 files changed

+32
-57
lines changed

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ script:
2424
- yarn run smoke esm 15.6.2
2525
- yarn run smoke cjs 16.1.0
2626
- yarn run smoke esm 16.1.0
27-
- yarn run smoke cjs default
28-
- yarn run smoke esm default
27+
- yarn run smoke cjs latest
28+
- yarn run smoke esm latest
2929
- yarn run smoke cjs next
3030
- yarn run smoke esm next

dist/cjs/.gitkeep

Whitespace-only changes.

dist/esm/.gitkeep

Whitespace-only changes.

package.json

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,11 @@
66
"module": "dist/esm/index.js",
77
"browser": "dist/cjs/index.js",
88
"scripts": {
9-
"clean": "npm run esm:clean && npm run cjs:clean",
10-
"build": "npm run esm:build && npm run cjs:build",
11-
"preesm:build": "npm run esm:clean",
12-
"esm:build": "babel ./src/ --ignore=*.spec.js --source-maps --out-dir ./dist/esm && flow-copy-source -v --ignore=*.spec.js src/ dist/esm",
13-
"esm:clean": "rm -rf ./dist/esm/*",
14-
"precjs:build": "npm run cjs:clean",
15-
"cjs:build": "rollup --config rollup.config.js",
16-
"cjs:clean": "rm -rf ./dist/cjs/*",
9+
"build": "rollup -c",
10+
"build:flow": "flow-copy-source -v --ignore=*.spec.js src/ dist/cjs",
11+
"prebuild": "rm -rf dist/",
12+
"postbuild": "npm run build:flow",
13+
"prepare": "npm run build",
1714
"lint": "eslint .",
1815
"lint:fix": "npm run lint -- --fix",
1916
"flow": "flow",
@@ -43,7 +40,6 @@
4340
"babel-cli": "6.26.0",
4441
"babel-eslint": "8.2.3",
4542
"babel-jest": "22.2.2",
46-
"babel-plugin-external-helpers": "6.22.0",
4743
"babel-preset-es2015": "6.24.1",
4844
"babel-preset-flow": "6.23.0",
4945
"babel-preset-react": "6.24.1",
@@ -58,6 +54,7 @@
5854
"eslint-plugin-jest": "21.17.0",
5955
"eslint-plugin-prettier": "2.6.0",
6056
"eslint-plugin-react": "7.9.1",
57+
"esm": "^3.0.51",
6158
"expect": "22.3.0",
6259
"flow-bin": "0.74.0",
6360
"flow-copy-source": "2.0.0",
@@ -73,7 +70,6 @@
7370
"rollup": "0.60.7",
7471
"rollup-plugin-babel": "3.0.4",
7572
"rollup-plugin-commonjs": "9.1.3",
76-
"rollup-plugin-flow": "1.1.1",
7773
"rollup-plugin-node-builtins": "2.1.2",
7874
"rollup-plugin-node-globals": "1.2.1",
7975
"rollup-plugin-node-resolve": "3.3.0",

rollup.config.js

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
1-
import fs from 'fs';
21
import babel from 'rollup-plugin-babel';
32
import commonjs from 'rollup-plugin-commonjs';
4-
import flow from 'rollup-plugin-flow';
53
import resolve from 'rollup-plugin-node-resolve';
64
import builtins from 'rollup-plugin-node-builtins';
75
import globals from 'rollup-plugin-node-globals';
6+
import pkg from './package.json';
87

9-
const extractPackagePeerDependencies = () => {
10-
const packageNpm = JSON.parse(
11-
fs.readFileSync('./package.json', { encoding: 'utf8' })
12-
);
13-
14-
return Object.keys(packageNpm.peerDependencies || {});
15-
};
8+
const extractPackagePeerDependencies = () =>
9+
Object.keys(pkg.peerDependencies) || [];
1610

1711
export default {
1812
input: 'src/index.js',
19-
output: {
20-
file: 'dist/cjs/index.js',
21-
format: 'cjs',
22-
sourcemap: true,
23-
},
13+
output: [
14+
{
15+
file: pkg.main,
16+
format: 'cjs',
17+
sourcemap: true,
18+
},
19+
{
20+
file: pkg.module,
21+
format: 'es',
22+
sourcemap: true,
23+
},
24+
],
2425
external: extractPackagePeerDependencies(),
2526
plugins: [
2627
babel({
@@ -39,8 +40,6 @@ export default {
3940
'react',
4041
'flow',
4142
],
42-
plugins: ['external-helpers'],
43-
externalHelpers: true,
4443
}),
4544
resolve({
4645
module: true,
@@ -56,6 +55,5 @@ export default {
5655
}),
5756
globals(),
5857
builtins(),
59-
flow(),
6058
],
6159
};

tests/smoke/prepare.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,6 @@ const deleteExistingDependencies = () => () => {
3131
};
3232

3333
const preparePackageJson = reactVersion => () => {
34-
if (reactVersion === 'default') {
35-
return;
36-
}
37-
3834
const packageJson = {
3935
name: 'smoke',
4036
version: '0.0.1',

tests/smoke/smoke.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
#!/usr/bin/env node
22

3-
/* eslint-disable no-console */
4-
/* eslint-disable import/no-extraneous-dependencies */
3+
/* eslint-disable no-console, import/no-extraneous-dependencies, no-global-assign */
4+
5+
require = require('esm')(module);
56

67
const requireReactElementToJsxString = buildType => {
78
if (buildType === 'esm') {

yarn.lock

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -766,12 +766,6 @@ babel-plugin-check-es2015-constants@^6.22.0:
766766
dependencies:
767767
babel-runtime "^6.22.0"
768768

769-
babel-plugin-external-helpers@6.22.0:
770-
version "6.22.0"
771-
resolved "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz#2285f48b02bd5dede85175caf8c62e86adccefa1"
772-
dependencies:
773-
babel-runtime "^6.22.0"
774-
775769
babel-plugin-istanbul@^4.1.5:
776770
version "4.1.5"
777771
resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz#6760cdd977f411d3e175bb064f2bc327d99b2b6e"
@@ -1226,7 +1220,7 @@ babylon@7.0.0-beta.44:
12261220
version "7.0.0-beta.44"
12271221
resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d"
12281222

1229-
babylon@^6.15.0, babylon@^6.18.0:
1223+
babylon@^6.18.0:
12301224
version "6.18.0"
12311225
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
12321226

@@ -2513,6 +2507,10 @@ eslint@4.19.1:
25132507
table "4.0.2"
25142508
text-table "~0.2.0"
25152509

2510+
esm@^3.0.51:
2511+
version "3.0.51"
2512+
resolved "https://registry.yarnpkg.com/esm/-/esm-3.0.51.tgz#35c3bcd0237867ab09020728135bfdb91ec79c90"
2513+
25162514
espree@^3.5.4:
25172515
version "3.5.4"
25182516
resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7"
@@ -2825,13 +2823,6 @@ flow-copy-source@2.0.0:
28252823
kefir "^3.7.3"
28262824
yargs "^11.0.0"
28272825

2828-
flow-remove-types@^1.1.0:
2829-
version "1.2.3"
2830-
resolved "https://registry.yarnpkg.com/flow-remove-types/-/flow-remove-types-1.2.3.tgz#6131aefc7da43364bb8b479758c9dec7735d1a18"
2831-
dependencies:
2832-
babylon "^6.15.0"
2833-
vlq "^0.2.1"
2834-
28352826
for-in@^1.0.1, for-in@^1.0.2:
28362827
version "1.0.2"
28372828
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
@@ -6021,13 +6012,6 @@ rollup-plugin-commonjs@9.1.3:
60216012
resolve "^1.5.0"
60226013
rollup-pluginutils "^2.0.1"
60236014

6024-
rollup-plugin-flow@1.1.1:
6025-
version "1.1.1"
6026-
resolved "https://registry.yarnpkg.com/rollup-plugin-flow/-/rollup-plugin-flow-1.1.1.tgz#6ce568f1dd559666b77ab76b4bae251407528db6"
6027-
dependencies:
6028-
flow-remove-types "^1.1.0"
6029-
rollup-pluginutils "^1.5.1"
6030-
60316015
rollup-plugin-node-builtins@2.1.2:
60326016
version "2.1.2"
60336017
resolved "https://registry.yarnpkg.com/rollup-plugin-node-builtins/-/rollup-plugin-node-builtins-2.1.2.tgz#24a1fed4a43257b6b64371d8abc6ce1ab14597e9"
@@ -6063,7 +6047,7 @@ rollup-plugin-sourcemaps@0.4.2:
60636047
rollup-pluginutils "^2.0.1"
60646048
source-map-resolve "^0.5.0"
60656049

6066-
rollup-pluginutils@^1.5.0, rollup-pluginutils@^1.5.1:
6050+
rollup-pluginutils@^1.5.0:
60676051
version "1.5.2"
60686052
resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408"
60696053
dependencies:

0 commit comments

Comments
 (0)