Skip to content

Commit 5367509

Browse files
authored
Merge pull request #24 from Babylonpartners/CW-1244-sass-overrides
[CW-1244] Add option to allow scss overrides
2 parents d4b74f3 + 4cad28e commit 5367509

File tree

3 files changed

+25
-3
lines changed

3 files changed

+25
-3
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
const { existsSync } = require('fs');
2+
const paths = require('./paths');
3+
4+
const getSassOptions = () => {
5+
if (existsSync(paths.scssOverridesSrc)) {
6+
return {
7+
data: `@import '${paths.scssOverridesSrc}';`,
8+
};
9+
}
10+
return {};
11+
};
12+
13+
module.exports = {
14+
getSassOptions,
15+
};

packages/react-scripts/config/paths.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ module.exports = {
8383
appIndexJs: resolveModule(resolveApp, 'src/index'),
8484
appPackageJson: resolveApp('package.json'),
8585
appSrc: resolveApp('src'),
86+
scssOverridesSrc: resolveApp('src/overrides.scss'),
8687
sharedLibSrc: resolveApp('../lib'),
8788
chatbotSrc: resolveApp('../chatbot-ui-web'),
8889
appTsConfig: resolveApp('tsconfig.json'),
@@ -107,6 +108,7 @@ module.exports = {
107108
appIndexJs: resolveModule(resolveApp, 'src/index'),
108109
appPackageJson: resolveApp('package.json'),
109110
appSrc: resolveApp('src'),
111+
scssOverridesSrc: resolveApp('src/overrides.scss'),
110112
sharedLibSrc: resolveApp('../lib'),
111113
chatbotSrc: resolveApp('../chatbot-ui-web'),
112114
appTsConfig: resolveApp('tsconfig.json'),
@@ -143,6 +145,7 @@ if (
143145
appIndexJs: resolveModule(resolveOwn, 'template/src/index'),
144146
appPackageJson: resolveOwn('package.json'),
145147
appSrc: resolveOwn('template/src'),
148+
scssOverridesSrc: resolveApp('template/src/overrides.scss'),
146149
sharedLibSrc: resolveOwn('../lib'),
147150
chatbotSrc: resolveApp('../chatbot-ui-web'),
148151
appTsConfig: resolveOwn('template/tsconfig.json'),

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin-alt')
3434
const typescriptFormatter = require('react-dev-utils/typescriptFormatter');
3535
// @remove-on-eject-begin
3636
const getCacheIdentifier = require('react-dev-utils/getCacheIdentifier');
37+
const { getSassOptions } = require('./customAppConfig');
3738
// @remove-on-eject-end
3839

3940
// Source maps are resource heavy and can cause out of memory issue for large source files.
@@ -77,7 +78,7 @@ module.exports = function(webpackEnv) {
7778
const env = getClientEnvironment(publicUrl);
7879

7980
// common function to get style loaders
80-
const getStyleLoaders = (cssOptions, preProcessor) => {
81+
const getStyleLoaders = (cssOptions, preProcessor, preProcessorOptions) => {
8182
const loaders = [
8283
isEnvDevelopment && require.resolve('style-loader'),
8384
isEnvProduction && {
@@ -118,6 +119,7 @@ module.exports = function(webpackEnv) {
118119
loader: require.resolve(preProcessor),
119120
options: {
120121
sourceMap: isEnvProduction ? shouldUseSourceMap : isEnvDevelopment,
122+
...preProcessorOptions,
121123
},
122124
});
123125
}
@@ -485,7 +487,8 @@ module.exports = function(webpackEnv) {
485487
? shouldUseSourceMap
486488
: isEnvDevelopment,
487489
},
488-
'sass-loader'
490+
'sass-loader',
491+
getSassOptions()
489492
),
490493
// Don't consider CSS imports dead code even if the
491494
// containing package claims to have no side effects.
@@ -506,7 +509,8 @@ module.exports = function(webpackEnv) {
506509
modules: true,
507510
getLocalIdent: getCSSModuleLocalIdent,
508511
},
509-
'sass-loader'
512+
'sass-loader',
513+
getSassOptions()
510514
),
511515
},
512516
// "file" loader makes sure those assets get served by WebpackDevServer.

0 commit comments

Comments
 (0)