Skip to content

Commit b1900cb

Browse files
fix: fix cjs build (#496)
1 parent 987ef26 commit b1900cb

File tree

12 files changed

+650
-720
lines changed

12 files changed

+650
-720
lines changed

.storybook/main.js

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ module.exports = {
2828
{
2929
loader: require.resolve('babel-loader'),
3030
options: {
31-
presets: [[require.resolve('babel-preset-react-app'), { flow: false, typescript: true }]]
31+
envName: 'esm',
32+
configFile: path.resolve(PATHS.root, 'babel.config.js')
3233
}
3334
}
3435
]
@@ -55,10 +56,35 @@ module.exports = {
5556
include: DEPENDENCY_REGEX,
5657
loader: 'babel-loader',
5758
options: {
59+
sourceType: 'unambiguous',
5860
babelrc: false,
5961
configFile: false,
6062
compact: false,
61-
presets: [['babel-preset-react-app/dependencies', { helpers: true }]],
63+
presets: [
64+
[
65+
'@babel/preset-env',
66+
{
67+
// Allow importing core-js in entrypoint and use browserlist to select polyfills
68+
useBuiltIns: 'entry',
69+
// Set the corejs version we are using to avoid warnings in console
70+
// This will need to change once we upgrade to corejs@3
71+
corejs: 3,
72+
// Do not transform modules to CJS
73+
modules: false,
74+
// Exclude transforms that make all code slower
75+
exclude: ['transform-typeof-symbol']
76+
}
77+
]
78+
],
79+
plugins: [
80+
[
81+
'@babel/plugin-transform-runtime',
82+
{
83+
version: require('@babel/runtime/package.json').version,
84+
useESModules: true
85+
}
86+
]
87+
],
6288
cacheDirectory: true,
6389
cacheCompression: false,
6490

babel.config.js

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
module.exports = function (api) {
2+
return {
3+
presets: [
4+
api.env('test') && [
5+
// ES features necessary for user's Node version
6+
require('@babel/preset-env').default,
7+
{
8+
targets: {
9+
node: 'current'
10+
}
11+
}
12+
],
13+
!api.env('test') && [
14+
'@babel/preset-env',
15+
{
16+
useBuiltIns: 'entry',
17+
corejs: 3,
18+
modules: false,
19+
exclude: ['transform-typeof-symbol']
20+
}
21+
],
22+
'@babel/preset-react',
23+
'@babel/preset-typescript'
24+
].filter(Boolean),
25+
plugins: [
26+
[
27+
'@babel/plugin-proposal-decorators',
28+
{
29+
legacy: true
30+
}
31+
],
32+
[
33+
'@babel/plugin-proposal-class-properties',
34+
{
35+
loose: true
36+
}
37+
],
38+
'@babel/plugin-proposal-numeric-separator',
39+
[
40+
'@babel/plugin-transform-runtime',
41+
{
42+
version: require('@babel/runtime/package.json').version,
43+
useESModules: api.env('esm')
44+
}
45+
],
46+
'@babel/plugin-proposal-optional-chaining',
47+
'@babel/plugin-proposal-nullish-coalescing-operator'
48+
]
49+
};
50+
};

babel.config.json

Lines changed: 0 additions & 10 deletions
This file was deleted.

config/jest.config.js

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,5 @@ module.exports = {
3939
'^@ui5/webcomponents-react-charts/(.*)$': '<rootDir>/packages/charts/src/$1',
4040
'\\.(css|less)$': 'identity-obj-proxy'
4141
},
42-
moduleFileExtensions: ['js', 'jsx', 'ts', 'tsx'],
43-
globals: {
44-
'ts-jest': {
45-
diagnostics: {
46-
ignoreCodes: [2307]
47-
}
48-
}
49-
}
42+
moduleFileExtensions: ['js', 'jsx', 'ts', 'tsx']
5043
};

config/jestsetup.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@ import ResizeObserver from 'resize-observer-polyfill';
77
import 'intersection-observer';
88
import '@ui5/webcomponents/dist/generated/json-imports/i18n';
99

10-
process.env.NODE_ENV = 'test';
11-
process.env.BABEL_ENV = 'test';
12-
1310
// React 16 Enzyme adapter
1411
Enzyme.configure({ adapter: new Adapter() });
1512

package.json

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66
"license": "Apache-2.0",
77
"scripts": {
88
"start": "lerna run build:i18n && start-storybook -p 6006 -c .storybook",
9-
"build": "yarn clean && lerna run build --stream && node ./scripts/rollup/build.js",
9+
"build": "npm-run-all -s build:clean build:esm build:cjs",
10+
"build:clean": "yarn clean",
11+
"build:esm": "lerna run build --stream",
12+
"build:cjs": "node ./scripts/rollup/build.js",
1013
"build:storybook": "lerna run build:i18n && build-storybook -c .storybook -o .out",
1114
"pretest": "rimraf coverage && lerna run build:i18n",
1215
"test": "jest --config=config/jest.config.js --coverage",
@@ -32,8 +35,15 @@
3235
},
3336
"devDependencies": {
3437
"@babel/core": "^7.9.6",
38+
"@babel/plugin-proposal-class-properties": "^7.8.3",
39+
"@babel/plugin-proposal-decorators": "^7.8.3",
3540
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.0",
41+
"@babel/plugin-proposal-numeric-separator": "^7.8.3",
3642
"@babel/plugin-proposal-optional-chaining": "^7.9.0",
43+
"@babel/plugin-transform-runtime": "^7.9.6",
44+
"@babel/preset-env": "^7.9.6",
45+
"@babel/preset-react": "^7.9.4",
46+
"@babel/preset-typescript": "^7.9.0",
3747
"@rollup/plugin-babel": "^5.0.0",
3848
"@rollup/plugin-commonjs": "^11.1.0",
3949
"@rollup/plugin-json": "^4.0.3",
@@ -50,8 +60,8 @@
5060
"@typescript-eslint/parser": "^2.31.0",
5161
"@ui5/webcomponents-tools": "^1.0.0-rc.6",
5262
"babel-code-frame": "^6.26.0",
63+
"babel-jest": "^26.0.1",
5364
"babel-loader": "^8.1.0",
54-
"babel-preset-react-app": "^9.1.2",
5565
"chalk": "^4.0.0",
5666
"dedent": "^0.7.0",
5767
"dotenv": "^8.2.0",
@@ -67,7 +77,7 @@
6777
"google-closure-compiler": "^20200406.0.0",
6878
"husky": "^4.2.5",
6979
"identity-obj-proxy": "^3.0.0",
70-
"jest": "^25.5.4",
80+
"jest": "^26.0.1",
7181
"jest-canvas-mock": "^2.2.0",
7282
"jest-environment-jsdom-sixteen": "^1.0.2",
7383
"jest-enzyme": "^7.1.2",
@@ -93,7 +103,8 @@
93103
"typescript": "^3.8.3"
94104
},
95105
"resolutions": {
96-
"@types/react": "16.9.34"
106+
"@types/react": "16.9.34",
107+
"@babel/runtime": "7.9.6"
97108
},
98109
"husky": {
99110
"hooks": {

packages/base/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"build": "npm-run-all -s build:rollup build:polyfills"
2828
},
2929
"dependencies": {
30-
"@babel/runtime": "7.9.0",
30+
"@babel/runtime": "7.9.6",
3131
"core-js": "3.6.4",
3232
"intersection-observer": "0.8.0",
3333
"proxy-polyfill": "0.3.1",

packages/charts/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"build": "rollup -c rollup.config.js"
2222
},
2323
"dependencies": {
24-
"@babel/runtime": "7.9.0",
24+
"@babel/runtime": "7.9.6",
2525
"chart.js": "^2.9.3",
2626
"chartjs-plugin-datalabels": "^0.7.0",
2727
"get-best-contrast-color": "^0.3.1",

packages/main/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"build:assets": "node ../../scripts/generate-assets/index.js"
3232
},
3333
"dependencies": {
34-
"@babel/runtime": "7.9.0",
34+
"@babel/runtime": "7.9.6",
3535
"@ui5/webcomponents-react-base": "^0.9.2",
3636
"lodash.debounce": "^4.0.8",
3737
"react-content-loader": "^5.0.4",

scripts/rollup/build.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const fs = require('fs');
1414
const Packaging = require('./packaging');
1515
const Modules = require('./modules');
1616
const { createDeclarationFiles } = require('./declarations');
17+
const PATHS = require('../../config/paths');
1718

1819
const argv = require('minimist')(process.argv.slice(2));
1920
const forcePrettyOutput = argv.pretty;
@@ -175,9 +176,7 @@ function shouldSkipBundle(bundle, bundleType) {
175176

176177
function getBabelConfig(updateBabelOptions, bundleType, filename) {
177178
let options = {
178-
exclude: '/**/node_modules/**',
179-
presets: [['babel-preset-react-app/prod', { absoluteRuntime: false }]],
180-
plugins: [],
179+
configFile: path.resolve(PATHS.root, 'babel.config.js'),
181180
babelHelpers: 'runtime',
182181
extensions: ['.js', '.jsx', '.ts', '.tsx', '.json']
183182
};

scripts/rollup/configFactory.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ const rollupConfigFactory = (pkgName, externals = []) => {
3030
babel({
3131
extensions: ['.js', '.jsx', '.ts', '.tsx'],
3232
babelHelpers: 'runtime',
33-
configFile: path.resolve(PATHS.root, 'babel.config.json')
33+
configFile: path.resolve(PATHS.root, 'babel.config.js')
3434
})
3535
];
3636

0 commit comments

Comments
 (0)