Skip to content

Commit 44e7ab9

Browse files
committed
Add support for Sass
Built on top of a locally-merged version of facebook#2285.
1 parent 782961c commit 44e7ab9

File tree

3 files changed

+54
-5
lines changed

3 files changed

+54
-5
lines changed

packages/react-scripts/config/jest/cssObjectProxy.js

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

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,11 +181,13 @@ module.exports = {
181181
// "file" loader makes sure those assets get served by WebpackDevServer.
182182
// When you `import` an asset, you get its (virtual) filename.
183183
// In production, they would get copied to the `build` folder.
184+
// ZEAL: Add .scss because we add the sass-loader below.
184185
{
185186
exclude: [
186187
/\.html$/,
187188
/\.(js|jsx)$/,
188189
/\.css$/,
190+
/\.scss$/,
189191
/\.json$/,
190192
/\.bmp$/,
191193
/\.gif$/,
@@ -271,6 +273,26 @@ module.exports = {
271273
},
272274
],
273275
},
276+
// ZEAL: Adds support for Sass with CSS Modules
277+
{
278+
test: /\.scss$/,
279+
use: [
280+
require.resolve('style-loader'),
281+
{
282+
loader: require.resolve('css-loader'),
283+
options: {
284+
importLoaders: 1,
285+
modules: true,
286+
localIdentName: '[name]__[local]___[hash:base64:5]',
287+
},
288+
},
289+
{
290+
loader: require.resolve('postcss-loader'),
291+
options: postCSSLoaderOptions,
292+
},
293+
require.resolve('sass-loader'),
294+
],
295+
},
274296
// ** STOP ** Are you adding a new loader?
275297
// Remember to add the new extension(s) to the "file" loader exclusion list.
276298
],

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

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,13 @@ module.exports = {
174174

175175
// "file" loader makes sure those assets end up in the `build` folder.
176176
// When you `import` an asset, you get its filename.
177+
// ZEAL: Add .scss because we add the sass-loader below.
177178
{
178179
exclude: [
179180
/\.html$/,
180181
/\.(js|jsx)$/,
181182
/\.css$/,
183+
/\.scss$/,
182184
/\.json$/,
183185
/\.bmp$/,
184186
/\.gif$/,
@@ -286,6 +288,36 @@ module.exports = {
286288
),
287289
// Note: this won't work without `new ExtractTextPlugin()` in `plugins`.
288290
},
291+
// ZEAL: Adds support for Sass with CSS Modules
292+
{
293+
test: /.scss$/,
294+
loader: ExtractTextPlugin.extract(
295+
Object.assign(
296+
{
297+
fallback: require.resolve('style-loader'),
298+
use: [
299+
{
300+
loader: require.resolve('css-loader'),
301+
options: {
302+
importLoaders: 1,
303+
minimize: true,
304+
sourceMap: true,
305+
modules: true,
306+
localIdentName: '[name]__[local]___[hash:base64:5]',
307+
},
308+
},
309+
{
310+
loader: require.resolve('postcss-loader'),
311+
options: postCSSLoaderOptions,
312+
},
313+
require.resolve('sass-loader'),
314+
],
315+
},
316+
extractTextPluginOptions
317+
)
318+
),
319+
// Note: this won't work without `new ExtractTextPlugin()` in `plugins`.
320+
},
289321
// ** STOP ** Are you adding a new loader?
290322
// Remember to add the new extension(s) to the "file" loader exclusion list.
291323
],

0 commit comments

Comments
 (0)