diff --git a/app/index.js b/app/index.js index 198070e..928ee67 100644 --- a/app/index.js +++ b/app/index.js @@ -74,6 +74,7 @@ ReactWebpackGenerator.prototype.askForStylesLanguage = function () { choices: [ {name: 'CSS', value: 'css'}, {name: 'SASS', value: 'sass'}, + {name: 'SCSS', value: 'scss'}, {name: 'LESS', value: 'less'}, {name: 'Stylus', value: 'stylus'} ], diff --git a/script-base.js b/script-base.js index cdf008c..b998fb5 100644 --- a/script-base.js +++ b/script-base.js @@ -43,6 +43,9 @@ var Generator = module.exports = function Generator() { case 'sass': this.stylesSuffix = '.sass'; break; + case 'scss': + this.stylesSuffix = '.scss'; + break; case 'less': this.stylesSuffix = '.less'; break; diff --git a/templates/common/_package.json b/templates/common/_package.json index 6e11b9e..df3a5e0 100644 --- a/templates/common/_package.json +++ b/templates/common/_package.json @@ -37,7 +37,7 @@ "grunt-contrib-copy": "~0.5.0",<% if (es6) { %> "6to5": "^2.7.1", "6to5-loader": "^1.0.0",<% } %> - "grunt-contrib-clean": "~0.6.0",<% if (stylesLanguage === 'sass') { %> + "grunt-contrib-clean": "~0.6.0",<% if (stylesLanguage.match(/s[ac]ss/)) { %> "sass-loader": "^0.3.1",<% } %><% if (stylesLanguage === 'less') { %> "less-loader": "^2.0.0",<% } %><% if (stylesLanguage === 'stylus') { %> "stylus-loader": "^0.5.0",<% } %> diff --git a/templates/common/_webpack.config.js b/templates/common/_webpack.config.js index 38522f3..78a537f 100644 --- a/templates/common/_webpack.config.js +++ b/templates/common/_webpack.config.js @@ -42,6 +42,9 @@ module.exports = { },<% if (stylesLanguage === 'sass') { %> { test: /\.sass/, loader: 'style-loader!css-loader!sass-loader?outputStyle=expanded' + },<% } %><% if (stylesLanguage === 'scss') { %> { + test: /\.scss/, + loader: 'style-loader!css-loader!sass-loader?outputStyle=expanded' },<% } %><% if (stylesLanguage === 'less') { %> { test: /\.less/, loader: 'style-loader!css-loader!less-loader' diff --git a/templates/common/_webpack.dist.config.js b/templates/common/_webpack.dist.config.js index d0946fa..697e35f 100644 --- a/templates/common/_webpack.dist.config.js +++ b/templates/common/_webpack.dist.config.js @@ -52,6 +52,9 @@ module.exports = { },<% if (stylesLanguage === 'sass') { %> { test: /\.sass/, loader: 'style-loader!css-loader!sass-loader?outputStyle=expanded' + },<% } %><% if (stylesLanguage === 'scss') { %> { + test: /\.scss/, + loader: 'style-loader!css-loader!sass-loader?outputStyle=expanded' },<% } %><% if (stylesLanguage === 'less') { %> { test: /\.less/, loader: 'style-loader!css-loader!less-loader' diff --git a/templates/javascript/Component.js b/templates/javascript/Component.js index 6676e2f..d52f421 100644 --- a/templates/javascript/Component.js +++ b/templates/javascript/Component.js @@ -3,6 +3,7 @@ var React = require('react/addons'); <% if (stylesLanguage === 'css') { %>require('../../styles/<%= classedName %>.css');<% } %> <% if (stylesLanguage === 'sass') { %>require('../../styles/<%= classedName %>.sass');<% } %> +<% if (stylesLanguage === 'scss') { %>require('../../styles/<%= classedName %>.scss');<% } %> <% if (stylesLanguage === 'less') { %>require('../../styles/<%= classedName %>.less');<% } %> <% if (stylesLanguage === 'stylus') { %>require('../../styles/<%= classedName %>.styl');<% } %> diff --git a/templates/styles/Component.scss b/templates/styles/Component.scss new file mode 100644 index 0000000..2bb362b --- /dev/null +++ b/templates/styles/Component.scss @@ -0,0 +1,3 @@ +.<%= classedName %>{ + border: 1px dashed #f00; +} \ No newline at end of file diff --git a/test/test-creation.js b/test/test-creation.js index 5d70a50..04f7089 100644 --- a/test/test-creation.js +++ b/test/test-creation.js @@ -141,6 +141,10 @@ describe('react-webpack generator', function() { assertStyle('sass', done); }); + it('should use scss style lang', function (done) { + assertStyle('scss', done); + }); + it('should use less style lang', function (done) { assertStyle('less', done); });