Skip to content
This repository was archived by the owner on Jun 26, 2020. It is now read-only.

Commit 28d36a2

Browse files
authored
Upgrade dev build tooling (Babel 6 -> 7, Webpack 1 -> 4) (#1235)
Upgrade dev build tooling (Babel 6 -> 7, Webpack 1 -> 4)
1 parent 780e4d3 commit 28d36a2

File tree

15 files changed

+3956
-1087
lines changed

15 files changed

+3956
-1087
lines changed

.babelrc

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
{
2-
"presets": ["react", "es2015", "stage-0"],
2+
"plugins": [
3+
["@babel/plugin-transform-flow-strip-types"],
4+
["@babel/plugin-proposal-class-properties", { "loose": false }]
5+
],
6+
"presets": ["@babel/preset-env", "@babel/preset-react", "@babel/preset-flow"]
37
}

backend/integration/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
"babelify": "^6.1.3",
44
"tap-browser-color": "^0.1.2",
55
"tape": "^4.0.1",
6-
"tape-catch": "^1.0.4"
6+
"tape-catch": "^1.0.4",
7+
"webpack-dev-server": "^3.1.10"
78
},
89
"dependencies": {
910
"es6-map": "^0.1.1",

backend/integration/webpack.config.js

+10-18
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
*/
1212
'use strict';
1313

14+
const {readFileSync} = require('fs');
15+
const {resolve} = require('path');
16+
1417
module.exports = {
1518
devtool: 'cheap-module-eval-source-map',
1619
entry: {
@@ -29,23 +32,12 @@ module.exports = {
2932
},
3033

3134
module: {
32-
33-
// require
34-
unknownContextRegExp: /$^/,
35-
unknownContextCritical: false,
36-
37-
// require(expr)
38-
exprContextRegExp: /$^/,
39-
exprContextCritical: false,
40-
41-
// require("prefix" + expr + "surfix")
42-
wrappedContextRegExp: /$^/,
43-
wrappedContextCritical: false,
44-
45-
loaders: [{
46-
test: /\.js$/,
47-
loader: 'babel',
48-
exclude: /node_modules/,
49-
}],
35+
rules: [
36+
{
37+
test: /\.js$/,
38+
loader: 'babel-loader',
39+
options: JSON.parse(readFileSync(resolve(__dirname, '../../.babelrc'))),
40+
},
41+
],
5042
},
5143
};

package.json

+12-10
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
{
22
"dependencies": {
3+
"@babel/core": "^7.1.6",
4+
"@babel/plugin-proposal-class-properties": "^7.1.0",
5+
"@babel/plugin-transform-flow-strip-types": "^7.1.6",
6+
"@babel/preset-env": "^7.1.6",
7+
"@babel/preset-flow": "^7.0.0",
8+
"@babel/preset-react": "^7.0.0",
39
"adm-zip": "^0.4.7",
4-
"babel-core": "6.3.21",
5-
"babel-eslint": "6.0.4",
6-
"babel-jest": "22.1.0",
7-
"babel-loader": "6.2.0",
8-
"babel-preset-es2015": "6.3.13",
9-
"babel-preset-react": "6.3.13",
10-
"babel-preset-stage-0": "6.3.13",
10+
"babel-core": "^7.0.0-bridge",
11+
"babel-eslint": "6",
12+
"babel-jest": "^23.6.0",
13+
"babel-loader": "^8.0.4",
1114
"child-process-promise": "^2.2.1",
1215
"classnames": "2.2.1",
1316
"cli-spinners": "^1.0.0",
@@ -22,23 +25,22 @@
2225
"gh-pages": "^1.0.0",
2326
"immutable": "3.7.6",
2427
"jest": "22.1.4",
25-
"json-loader": "0.5.4",
2628
"log-update": "^2.0.0",
2729
"lru-cache": "^4.1.3",
2830
"memoize-one": "^3.1.1",
2931
"node-libs-browser": "0.5.3",
3032
"nullthrows": "^1.0.0",
3133
"object-assign": "4.0.1",
3234
"prop-types": "^15.6.1",
33-
"raw-loader": "^0.5.1",
3435
"react": "^16.5.2",
3536
"react-color": "^2.11.7",
3637
"react-dom": "^16.5.2",
3738
"react-portal": "^3.1.0",
3839
"react-virtualized-auto-sizer": "^1.0.2",
3940
"react-window": "^1.1.1",
4041
"semver": "^5.5.1",
41-
"webpack": "1.12.9"
42+
"webpack": "^4.26.0",
43+
"webpack-cli": "^3.1.2"
4244
},
4345
"license": "BSD-3-Clause",
4446
"repository": "facebook/react-devtools",

packages/react-devtools-core/webpack.backend.js

+15-18
Original file line numberDiff line numberDiff line change
@@ -9,38 +9,35 @@
99
*/
1010
'use strict';
1111

12-
var webpack = require('webpack');
13-
var __DEV__ = process.env.NODE_ENV !== 'production';
12+
const {readFileSync} = require('fs');
13+
const {resolve} = require('path');
14+
const webpack = require('webpack');
15+
16+
const __DEV__ = process.env.NODE_ENV !== 'production';
1417

1518
module.exports = {
16-
debug: true,
17-
devtool: 'source-map',
19+
mode: __DEV__ ? 'development' : 'production',
20+
devtool: __DEV__ ? 'source-map' : false,
1821
entry: {
1922
backend: './src/backend.js',
2023
},
2124
output: {
22-
path: __dirname + '/build', // eslint-disable-line no-path-concat
25+
path: __dirname + '/build',
2326
filename: '[name].js',
24-
library: 'ReactDevToolsBackend',
25-
libraryTarget: 'umd',
2627
},
2728
plugins: __DEV__ ? [] : [
2829
// Ensure we get production React
2930
new webpack.DefinePlugin({
3031
'process.env.NODE_ENV': '"production"',
3132
}),
32-
// Remove dead code but keep it readable:
33-
new webpack.optimize.UglifyJsPlugin({
34-
mangle: false,
35-
beautify: true,
36-
}),
3733
],
3834
module: {
39-
loaders: [{
40-
test: /\.js$/,
41-
loader: 'babel',
42-
exclude: /node_modules/,
43-
}],
35+
rules: [
36+
{
37+
test: /\.js$/,
38+
loader: 'babel-loader',
39+
options: JSON.parse(readFileSync(resolve(__dirname, '../../.babelrc'))),
40+
},
41+
],
4442
},
4543
};
46-

packages/react-devtools-core/webpack.standalone.js

+16-21
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,20 @@
99
*/
1010
'use strict';
1111

12-
var webpack = require('webpack');
13-
var __DEV__ = process.env.NODE_ENV !== 'production';
12+
const {readFileSync} = require('fs');
13+
const {resolve} = require('path');
14+
const webpack = require('webpack');
15+
16+
const __DEV__ = process.env.NODE_ENV !== 'production';
1417

1518
module.exports = {
16-
debug: true,
17-
devtool: 'source-map',
19+
mode: __DEV__ ? 'development' : 'production',
20+
devtool: __DEV__ ? 'source-map' : false,
21+
target: 'electron-main',
22+
externals: ['ws'],
1823
entry: {
1924
standalone: './src/standalone.js',
2025
},
21-
// this lets us `require('fs')` etc
22-
target: 'electron',
23-
node: {
24-
// don't replace __dirname, electron will handle it
25-
__dirname: false,
26-
},
2726
output: {
2827
path: __dirname + '/build', // eslint-disable-line no-path-concat
2928
filename: '[name].js',
@@ -35,18 +34,14 @@ module.exports = {
3534
new webpack.DefinePlugin({
3635
'process.env.NODE_ENV': '"production"',
3736
}),
38-
// Remove dead code but keep it readable:
39-
new webpack.optimize.UglifyJsPlugin({
40-
mangle: false,
41-
beautify: true,
42-
}),
4337
],
44-
externals: ['ws'],
4538
module: {
46-
loaders: [{
47-
test: /\.js$/,
48-
loader: 'babel',
49-
exclude: /node_modules/,
50-
}],
39+
rules: [
40+
{
41+
test: /\.js$/,
42+
loader: 'babel-loader',
43+
options: JSON.parse(readFileSync(resolve(__dirname, '../../.babelrc'))),
44+
},
45+
],
5146
},
5247
};

shells/plain/webpack.config.js

+12-7
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,12 @@
99
*/
1010
'use strict';
1111

12+
const {readFileSync} = require('fs');
13+
const {resolve} = require('path');
14+
1215
module.exports = {
13-
devtool: false, //'cheap-module-eval-source-map',
16+
mode: 'development',
17+
devtool: false,
1418
entry: {
1519
backend: './backend.js',
1620
container: './container.js',
@@ -19,12 +23,13 @@ module.exports = {
1923
path: __dirname + '/build',
2024
filename: '[name].js',
2125
},
22-
2326
module: {
24-
loaders: [{
25-
test: /\.js$/,
26-
loader: 'babel',
27-
exclude: /node_modules/,
28-
}],
27+
rules: [
28+
{
29+
test: /\.js$/,
30+
loader: 'babel-loader',
31+
options: JSON.parse(readFileSync(resolve(__dirname, '../../.babelrc'))),
32+
},
33+
],
2934
},
3035
};

shells/theme-preview/webpack.config.js

+12-7
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,26 @@
99
*/
1010
'use strict';
1111

12+
const {readFileSync} = require('fs');
13+
const {resolve} = require('path');
14+
1215
module.exports = {
13-
devtool: false, //'cheap-module-eval-source-map',
16+
mode: 'development',
17+
devtool: 'cheap-module-eval-source-map',
1418
entry: {
1519
application: './application.js',
1620
},
1721
output: {
1822
path: __dirname + '/build',
1923
filename: '[name].js',
2024
},
21-
2225
module: {
23-
loaders: [{
24-
test: /\.js$/,
25-
loader: 'babel',
26-
exclude: /node_modules/,
27-
}],
26+
rules: [
27+
{
28+
test: /\.js$/,
29+
loader: 'babel-loader',
30+
options: JSON.parse(readFileSync(resolve(__dirname, '../../.babelrc'))),
31+
},
32+
],
2833
},
2934
};

shells/webextension/webpack.backend.js

+12-16
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,28 @@
99
*/
1010
'use strict';
1111

12-
var webpack = require('webpack');
12+
const {readFileSync} = require('fs');
13+
const {resolve} = require('path');
1314

14-
var __DEV__ = process.env.NODE_ENV !== 'production';
15+
const __DEV__ = process.env.NODE_ENV !== 'production';
1516

1617
module.exports = {
17-
devtool: __DEV__ ? '#cheap-module-eval-source-map' : false,
18+
mode: __DEV__ ? 'development' : 'production',
19+
devtool: __DEV__ ? 'cheap-module-eval-source-map' : false,
1820
entry: {
1921
backend: './src/backend.js',
2022
},
2123
output: {
2224
path: __dirname + '/build',
2325
filename: '[name].js',
2426
},
25-
2627
module: {
27-
loaders: [{
28-
test: /\.js$/,
29-
loader: 'babel',
30-
exclude: /node_modules/,
31-
}],
28+
rules: [
29+
{
30+
test: /\.js$/,
31+
loader: 'babel-loader',
32+
options: JSON.parse(readFileSync(resolve(__dirname, '../../.babelrc'))),
33+
},
34+
],
3235
},
33-
34-
plugins: [new webpack.ProvidePlugin({
35-
'Object.create': __dirname + '/helpers/object-create.js',
36-
Map: __dirname + '/helpers/map.js',
37-
WeakMap: __dirname + '/helpers/weak-map.js',
38-
Set: __dirname + '/helpers/set.js',
39-
})],
4036
};

shells/webextension/webpack.config.js

+16-15
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,20 @@
99
*/
1010
'use strict';
1111

12-
var webpack = require('webpack');
13-
var __DEV__ = process.env.NODE_ENV !== 'production';
12+
const {readFileSync} = require('fs');
13+
const {resolve} = require('path');
14+
const webpack = require('webpack');
15+
16+
const __DEV__ = process.env.NODE_ENV !== 'production';
1417

1518
module.exports = {
16-
devtool: __DEV__ ? '#cheap-module-eval-source-map' : false,
19+
mode: __DEV__ ? 'development' : 'production',
20+
devtool: __DEV__ ? 'cheap-module-eval-source-map' : false,
1721
entry: {
18-
main: './src/main.js',
1922
background: './src/background.js',
20-
inject: './src/GlobalHook.js',
2123
contentScript: './src/contentScript.js',
24+
inject: './src/GlobalHook.js',
25+
main: './src/main.js',
2226
panel: './src/panel.js',
2327
},
2428
output: {
@@ -30,17 +34,14 @@ module.exports = {
3034
new webpack.DefinePlugin({
3135
'process.env.NODE_ENV': '"production"',
3236
}),
33-
// Remove dead code but keep it readable:
34-
new webpack.optimize.UglifyJsPlugin({
35-
mangle: false,
36-
beautify: true,
37-
}),
3837
],
3938
module: {
40-
loaders: [{
41-
test: /\.js$/,
42-
loader: 'babel',
43-
exclude: /node_modules/,
44-
}],
39+
rules: [
40+
{
41+
test: /\.js$/,
42+
loader: 'babel-loader',
43+
options: JSON.parse(readFileSync(resolve(__dirname, '../../.babelrc'))),
44+
},
45+
],
4546
},
4647
};

0 commit comments

Comments
 (0)