diff --git a/src/evaluator.js b/src/evaluator.js index 4133c55..df04a0a 100644 --- a/src/evaluator.js +++ b/src/evaluator.js @@ -74,7 +74,15 @@ async function getDependencies( nodes.filename = filepath; const parser = new Parser(code, options); - const ast = parser.parse(); + + let ast; + + try { + ast = parser.parse(); + } catch (error) { + loaderContext.emitError(error); + } + const deps = new Map(); class ImportVisitor extends DepsResolver { diff --git a/src/index.js b/src/index.js index d3d13c9..e69bf6d 100644 --- a/src/index.js +++ b/src/index.js @@ -96,8 +96,13 @@ export default async function stylusLoader(source) { // let stylus do its magic styl.render(async (error, css) => { if (error) { - this.addDependency(path.normalize(error.filename)); - return callback(error); + if (error.filename) { + this.addDependency(path.normalize(error.filename)); + } + + callback(error); + + return; } // eslint-disable-next-line no-underscore-dangle @@ -119,11 +124,13 @@ export default async function stylusLoader(source) { (await readFile(this.fs, file)).toString() ) ); - } catch (errorFs) { - return callback(errorFs); + } catch (fsError) { + callback(fsError); + + return; } } - return callback(null, css, map); + callback(null, css, map); }); }