Ответ 1
Компилятор SASS использует каждый путь в loadPaths при разрешении SASS @imports.
loadPaths: ['styles/foo', 'styles/bar']
@import "x"; // found via ./styles/foo/_x.scss
@import "y"; // found via ./styles/bar/_y.scss
Обратите внимание, что компилятор разрешает каждый @import, рассматривая каждый путь в loadPaths
слева направо (аналогично $PATH
в среде UNIX). Пример сценария может быть:
loadPaths: ['styles/i', 'styles/ii', 'styles/iii', 'styles/iv']
@import "x"; // no file at ./styles/i/_x.scss
// no file at ./styles/ii/_x.scss
// found a file at ./styles/iii/_x.scss ...
// ... this file will be used as the import
// ... terminate lookup
// the file ./styles/iv/_x.scss will be ignored
В styles/i
не было файла _x.scss
, поэтому он перешел к styles/ii
. В конце концов он нашел файл _x.scss
в styles/iii
и завершил поиск. Он просматривает каждую папку в loadPaths
, начиная с первого элемента в массиве и перемещаясь вправо. После попытки всех путей, если мы не сможем найти файл, мы объявим, что этот оператор @import недействителен.
Пути загрузки полезны, если у вас есть внешняя библиотека (например, bournon/neat). Внешняя библиотека большая и будет использовать множество операторов @import. Однако они не будут соответствовать вашей структуре папок проекта и поэтому не будут разрешаться. Однако вы можете добавить дополнительные папки в loadPaths, чтобы @imports внутри внешней библиотеки разрешали.