This repository was archived by the owner on Jan 31, 2025. It is now read-only.
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');
5
5
var path = require ( 'path' ) ;
6
6
var os = require ( 'os' ) ;
7
7
var fs = require ( 'fs' ) ;
8
+ var async = require ( 'async' ) ;
8
9
9
10
// A typical sass error looks like this
10
11
var SassError = {
@@ -19,6 +20,12 @@ var SassError = {
19
20
var extPrecedence = [ '.scss' , '.sass' , '.css' ] ;
20
21
var matchCss = / \. c s s $ / ;
21
22
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
+
22
29
/**
23
30
* The sass-loader makes node-sass available to webpack modules.
24
31
*
@@ -232,7 +239,8 @@ module.exports = function (content) {
232
239
throw err ;
233
240
}
234
241
}
235
- sass . render ( opt , function onRender ( err , result ) {
242
+
243
+ asyncSassJobQueue . push ( opt , function onRender ( err , result ) {
236
244
if ( err ) {
237
245
formatSassError ( err ) ;
238
246
err . file && self . dependency ( err . file ) ;
Original file line number Diff line number Diff line change 30
30
"node-sass" : " ^3.2.0"
31
31
},
32
32
"dependencies" : {
33
+ "async" : " ^1.4.0" ,
33
34
"loader-utils" : " ^0.2.5"
34
35
},
35
36
"devDependencies" : {
You can’t perform that action at this time.
0 commit comments