File tree Expand file tree Collapse file tree 2 files changed +10
-1
lines changed
Expand file tree Collapse file tree 2 files changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ var sass = require('node-sass');
55var path = require ( 'path' ) ;
66var os = require ( 'os' ) ;
77var fs = require ( 'fs' ) ;
8+ var async = require ( 'async' ) ;
89
910// A typical sass error looks like this
1011var SassError = {
@@ -19,6 +20,12 @@ var SassError = {
1920var extPrecedence = [ '.scss' , '.sass' , '.css' ] ;
2021var matchCss = / \. c s s $ / ;
2122
23+ // This queue makes sure node-sass leaves one thread available for executing
24+ // fs tasks when running the custom importer code.
25+ // This can be removed as soon as node-sass implements a fix for this.
26+ var threadPoolSize = process . env . UV_THREADPOOL_SIZE || 4 ;
27+ var asyncSassJobQueue = async . queue ( sass . render , threadPoolSize - 1 ) ;
28+
2229/**
2330 * The sass-loader makes node-sass available to webpack modules.
2431 *
@@ -232,7 +239,8 @@ module.exports = function (content) {
232239 throw err ;
233240 }
234241 }
235- sass . render ( opt , function onRender ( err , result ) {
242+
243+ asyncSassJobQueue . push ( opt , function onRender ( err , result ) {
236244 if ( err ) {
237245 formatSassError ( err ) ;
238246 err . file && self . dependency ( err . file ) ;
Original file line number Diff line number Diff line change 3030 "node-sass" : " ^3.2.0"
3131 },
3232 "dependencies" : {
33+ "async" : " ^1.4.0" ,
3334 "loader-utils" : " ^0.2.5"
3435 },
3536 "devDependencies" : {
You can’t perform that action at this time.
0 commit comments