When attempting to import the scss of an npm package using gulp-sass/node-sass/libsass, it fails on
../../app/assets/stylesheets/_engine.scss
Error: File to import not found or unreadable: bootstrap-material-design/scss/core
Parent style sheet: /Users/kross/projects/acme/app/assets/stylesheets/_engine.scss
on line 6 of ../../app/assets/stylesheets/_engine.scss
>> @import "bootstrap-material-design/scss/core";
^
Versions:
[email protected]
[email protected]
While investigating this issue, I've narrowed down potential external issues. It doesn't matter which file is substituted in this location, or it's contents (even empty contents), libsass seems to be unable to find the nested @import relative to the path of the found file.
In this case:
includePaths: ['../../node_modules']Compilation command
cd spec/dummy && gulp sasstargetsapplication.scssStructure
Note: it is clear that core is found within the bootstrap-material-design package inside node_modules
It is clear that the nested file _core.scss is found, but that the nested file cannot find a file relative to it.
Also note, that if my cwd is at the root of this project, I _can_compile. Moving the cwd down into spec/dummy and compiling, suddenly this nested relative file is no longer found.
What am I missing here?

I switched the
includePathsrelative path to a fully qualified path and it works. This appears to be a bug.The workaround is to ensure that any passed-in
includePathsare fully qualified directory names.This gulp-pipeline recipe uses
findupto do this: