diff --git a/packages/react-scripts/config/webpack.config.dev.js b/packages/react-scripts/config/webpack.config.dev.js index 8b40f9d41fa..658f0b0ef80 100644 --- a/packages/react-scripts/config/webpack.config.dev.js +++ b/packages/react-scripts/config/webpack.config.dev.js @@ -220,6 +220,20 @@ module.exports = { }, ], }, + { + test: /\.scss$/, + use: [ + 'style-loader', + // Using source maps breaks urls in the CSS loader + // https://github.com/webpack/css-loader/issues/232 + // This comment solves it, but breaks testing from a local network + // https://github.com/webpack/css-loader/issues/232#issuecomment-240449998 + // 'css-loader?sourceMap', + 'css-loader?importLoaders=1&modules&localIdentName=[path]___[name]__[local]___[hash:base64:5]', + 'postcss-loader', + 'sass-loader', + ], + }, // "file" loader makes sure those assets get served by WebpackDevServer. // When you `import` an asset, you get its (virtual) filename. // In production, they would get copied to the `build` folder. diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 9bfd516f136..256cc49b828 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -235,6 +235,13 @@ module.exports = { ), // Note: this won't work without `new ExtractTextPlugin()` in `plugins`. }, + { + test: /\.scss$/, + loader: ExtractTextPlugin.extract({ + fallbackLoader: 'style-loader', + loader: 'css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!postcss-loader!sass-loader', + }), + }, // "file" loader makes sure assets end up in the `build` folder. // When you `import` an asset, you get its filename. // This loader don't uses a "test" so it will catch all modules diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 684b7de9c91..f32df2be282 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -44,12 +44,14 @@ "fs-extra": "3.0.1", "html-webpack-plugin": "2.29.0", "jest": "20.0.4", + "node-sass": "^4.5.3", "object-assign": "4.1.1", "postcss-flexbugs-fixes": "3.0.0", "postcss-loader": "2.0.6", "promise": "7.1.1", "react-dev-utils": "^3.0.2", "react-error-overlay": "^1.0.9", + "sass-loader": "^6.0.6", "style-loader": "0.18.2", "sw-precache-webpack-plugin": "0.11.3", "url-loader": "0.5.9",