Skip to content

Commit 6d76f7a

Browse files
author
尹曰
committed
Support Sass Loader
1 parent 0e4d373 commit 6d76f7a

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

lib/build.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,14 @@ function getWebpackOpts(opts, callback) {
131131
css = spmcss + css;
132132
var cssLoader = 'style!' + css;
133133
var lessLoader = 'style!' + normalize(css+'!less', opts, 'less');
134+
135+
var sassOutputStyle = opts.build.sass && opts.build.sass.outputStyle || 'expanded';
136+
var sassLoader = 'style!' + normalize(css+'!resolve-url!sass?sourceMap&outputStyle='+sassOutputStyle, opts, 'scss');
137+
134138
if (opts.build.extractCSS || files.extractCSS) {
135139
cssLoader = ExtractTextPlugin.extract('style', css);
136140
lessLoader = ExtractTextPlugin.extract('style', normalize(css+'!less', opts, 'less'));
141+
sassLoader = ExtractTextPlugin.extract('style', normalize(css+'!resolve-url!sass?sourceMap&outputStyle='+sassOutputStyle, opts, 'scss'));
137142
}
138143

139144
var babelOpts = decodeURI(qs.stringify(opts.build.babel, {arrayFormat:'brackets'}));
@@ -174,6 +179,7 @@ function getWebpackOpts(opts, callback) {
174179
{ test: /\.handlebars$/, loader: normalize('handlebars?helperDirs[]=' + __dirname + '/../helpers', opts, 'handlebars') },
175180
{ test: /\.css$/, loader: cssLoader },
176181
{ test: /\.less$/, loader: lessLoader },
182+
{ test: /\.scss$/, loader: sassLoader },
177183
{ test: /\.(png|jpe?g|gif|eot|svg|ttf|woff|woff2)$/, loader: loader }
178184
]
179185
},

lib/getFiles.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ function map(files, cwd, pathmap) {
7474
key = file.name.replace(new RegExp(ext + '$'), '');
7575
key = formatOutputPath(key, pathmap);
7676
js[key] = formatFiles(file.files, cwd);
77-
} else if (ext === '.css' || ext === '.less') {
77+
} else if (ext === '.css' || ext === '.less' || ext === '.scss') {
7878
// Create js file to require css
79-
var f = file.name.replace(/\.(css|less)$/, '');
79+
var f = file.name.replace(/\.(css|less|scss)$/, '');
8080
f = formatOutputPath(f, pathmap);
8181
var fileName = '_webpackcssentry_' + f;
8282
var jsFile = join(require('os').tmpdir(), fileName + '.js');

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@
3232
"mkdirp": "~0.5.1",
3333
"node-libs-browser": "~0.5.2",
3434
"qs": "~2.4.1",
35+
"resolve-url-loader": "~1.2.0",
3536
"rimraf": "~2.3.2",
37+
"sass-loader": "~2.0.1",
3638
"scripts-hook": "~0.1.3",
3739
"semver": "~4.3.1",
3840
"spm-argv": "~0.1.0",

0 commit comments

Comments
 (0)