Skip to content

Commit 38044f3

Browse files
committed
custom webpackDevServer.config
1 parent f81fd9a commit 38044f3

File tree

7 files changed

+50
-30
lines changed

7 files changed

+50
-30
lines changed

packages/react-scripts/config/paths.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ module.exports = {
8787
customWebpackConfig: resolveApp('config/webpack.config.js'),
8888
customWebpackDevConfig: resolveApp('config/webpack.config.dev.js'),
8989
customWebpackProdConfig: resolveApp('config/webpack.config.prod.js'),
90+
// rewired webpack devServer config
91+
customWebpackDevServerConfig: resolveApp('config/webpackDevServer.config.js'),
9092
};
9193

9294
const ownPackageJson = require('../package.json');
@@ -123,6 +125,10 @@ if (
123125
customWebpackProdConfig: resolveOwn(
124126
'template/config/webpack.config.prod.js'
125127
),
128+
// rewired webpack devServer config
129+
customWebpackDevServerConfig: resolveOwn(
130+
'template/config/webpackDevServer.config.js'
131+
),
126132
};
127133
}
128134
// @remove-on-eject-end
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// @remove-file-on-eject
2+
'use strict';
3+
const fs = require('fs');
4+
5+
module.exports = function requireFile(filename, callback) {
6+
let file = undefined;
7+
if (fs.existsSync(filename) && fs.statSync(filename).isFile()) {
8+
file = require(filename);
9+
}
10+
11+
callback(file);
12+
};

packages/react-scripts/config/utils/rewired.js

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

packages/react-scripts/config/webpack.config.dev.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -289,11 +289,11 @@ module.exports = {
289289
// @remove-on-eject-begin
290290

291291
// rewired webpack config
292-
const rewired = require('./utils/rewired');
293-
module.exports = rewired(
294-
paths.customWebpackConfig,
295-
module.exports,
296-
'development'
297-
);
298-
module.exports = rewired(paths.customWebpackDevConfig, module.exports);
292+
const requireFile = require('./utils/requireFile');
293+
requireFile(paths.customWebpackConfig, config => {
294+
module.exports = config(module.exports, 'development');
295+
});
296+
requireFile(paths.customWebpackDevConfig, config => {
297+
module.exports = config(module.exports);
298+
});
299299
// @remove-on-eject-end

packages/react-scripts/config/webpack.config.prod.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -371,11 +371,11 @@ module.exports = {
371371
// @remove-on-eject-begin
372372

373373
// rewired webpack config
374-
const rewired = require('./utils/rewired');
375-
module.exports = rewired(
376-
paths.customWebpackConfig,
377-
module.exports,
378-
'production'
379-
);
380-
module.exports = rewired(paths.customWebpackProdConfig, module.exports);
374+
const requireFile = require('./utils/requireFile');
375+
requireFile(paths.customWebpackConfig, config => {
376+
module.exports = config(module.exports, 'production');
377+
});
378+
requireFile(paths.customWebpackProdConfig, config => {
379+
module.exports = config(module.exports);
380+
});
381381
// @remove-on-eject-end

packages/react-scripts/config/webpackDevServer.config.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,3 +101,16 @@ module.exports = function(proxy, allowedHost) {
101101
},
102102
};
103103
};
104+
105+
// @remove-on-eject-begin
106+
const defaultConfig = module.exports;
107+
108+
const requireFile = require('./utils/requireFile');
109+
110+
requireFile(paths.customWebpackDevServerConfig, rewiredConfig => {
111+
module.exports = function(proxy, allowedHost) {
112+
const config = defaultConfig(proxy, allowedHost);
113+
rewiredConfig(config, proxy, allowedHost);
114+
};
115+
});
116+
// @remove-on-eject-end
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module.exports = function(webpackDevServerConfig, proxy, allowedHost) {
2+
// rewired webpackDevServerConfig
3+
4+
return webpackDevServerConfig;
5+
};

0 commit comments

Comments
 (0)