Skip to content

Commit b3a09ca

Browse files
committed
refactor patch module
1 parent 0b9da2c commit b3a09ca

File tree

3 files changed

+16
-8
lines changed

3 files changed

+16
-8
lines changed

scripts/build.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ process.env.NODE_ENV = 'production';
33

44
require('react-scripts/config/env');
55

6+
const patchModule = require('./utils/cache');
7+
68
const fs = require('fs-extra');
79
const path = require('path');
810

@@ -14,12 +16,11 @@ const originalConfigFactory = require('react-scripts/config/webpack.config');
1416

1517
if (fs.existsSync(webpackMonkeyPath)) {
1618
console.log(chalk.yellow('WARNING! You are using modified webpack config!'));
17-
const configPatch = require(webpackMonkeyPath)
18-
const configModule = require.cache[require.resolve('react-scripts/config/webpack.config')];
19-
configModule.exports = (...args) => {
19+
const configPatch = require(webpackMonkeyPath);
20+
patchModule('react-scripts/config/webpack.config', (...args) => {
2021
const webpackConfig = originalConfigFactory(...args);
2122
return configPatch(webpackConfig, false) || webpackConfig;
22-
};
23+
});
2324
}
2425

2526
require('react-scripts/scripts/build');

scripts/start.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ process.env.NODE_ENV = 'production';
33

44
require('react-scripts/config/env');
55

6+
const patchModule = require('./utils/cache');
7+
68
const fs = require('fs-extra');
79
const path = require('path');
810

@@ -14,12 +16,11 @@ const originalConfigFactory = require('react-scripts/config/webpack.config');
1416

1517
if (fs.existsSync(webpackMonkeyPath)) {
1618
console.log(chalk.yellow('WARNING! You are using modified webpack config!'));
17-
const configPatch = require(webpackMonkeyPath)
18-
const configModule = require.cache[require.resolve('react-scripts/config/webpack.config')];
19-
configModule.exports = (...args) => {
19+
const configPatch = require(webpackMonkeyPath);
20+
patchModule('react-scripts/config/webpack.config', (...args) => {
2021
const webpackConfig = originalConfigFactory(...args);
2122
return configPatch(webpackConfig, true) || webpackConfig;
22-
};
23+
});
2324
}
2425

2526
require('react-scripts/scripts/start');

scripts/utils/cache.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
function patchModule(key, value) {
2+
const configModule = require.cache[require.resolve(key)];
3+
configModule.exports = value;
4+
}
5+
6+
module.exports = patchModule;

0 commit comments

Comments
 (0)