@@ -31,7 +31,7 @@ function createWebpackLessPlugin(loaderContext) {
3131 const resolve = loaderContext . getResolve ( {
3232 mainFields : [ 'less' , 'style' , 'main' , '...' ] ,
3333 mainFiles : [ '_index' , 'index' , '...' ] ,
34- extensions : [ '.less' , '.css' , '...' ] ,
34+ extensions : [ '.less' , '.css' ] ,
3535 } ) ;
3636
3737 class WebpackFileManager extends less . FileManager {
@@ -61,7 +61,27 @@ function createWebpackLessPlugin(loaderContext) {
6161 return filename ;
6262 }
6363
64- async loadFile ( filename , currentDirectory , options ) {
64+ resolveRequests ( context , possibleRequests ) {
65+ if ( possibleRequests . length === 0 ) {
66+ return Promise . reject ( ) ;
67+ }
68+
69+ return resolve ( context , possibleRequests [ 0 ] )
70+ . then ( ( result ) => {
71+ return result ;
72+ } )
73+ . catch ( ( error ) => {
74+ const [ , ...tailPossibleRequests ] = possibleRequests ;
75+
76+ if ( tailPossibleRequests . length === 0 ) {
77+ throw error ;
78+ }
79+
80+ return this . resolveRequests ( context , tailPossibleRequests ) ;
81+ } ) ;
82+ }
83+
84+ async loadFile ( filename , currentDirectory , options , ...args ) {
6585 const url = this . getUrl ( filename , options ) ;
6686
6787 const moduleRequest = urlToRequest (
@@ -71,7 +91,18 @@ function createWebpackLessPlugin(loaderContext) {
7191
7292 // Less is giving us trailing slashes, but the context should have no trailing slash
7393 const context = currentDirectory . replace ( trailingSlash , '' ) ;
74- const resolvedFilename = await resolve ( context , moduleRequest ) ;
94+ let resolvedFilename ;
95+
96+ try {
97+ resolvedFilename = await this . resolveRequests ( context , [
98+ moduleRequest ,
99+ url ,
100+ ] ) ;
101+ } catch ( error ) {
102+ loaderContext . emitError ( error ) ;
103+
104+ return super . loadFile ( filename , currentDirectory , options , ...args ) ;
105+ }
75106
76107 loaderContext . addDependency ( resolvedFilename ) ;
77108
0 commit comments