Sass import не сканирует node_modules, чтобы найти подходящий пакет

Я использую bootstrap-sass. Модуль узла установлен. Я должен ожидать, что я могу, в любом файле.scss, использовать строку ниже, чтобы импортировать в соответствующий лист

@import 'bootstrap';

Я понимаю, что должно произойти, если компилятор сканирует до тех пор, пока не найдет package.json, не перескочит в node_modules и не найдет соответствующий пакет. Вместо этого я получаю ошибку ниже.

Ошибка: файл для импорта не найден или не читается: bootstrap

Если я заменю свой импорт полностью определенным путем, как показано ниже, то все будет работать неуклонно.

@import '../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap';

Я использую gulp-sass для компиляции. Думаю, у меня просто есть несколько незначительных битов конфигурации, но я не могу понять, что это такое.

2 ответа

Решение

Передайте путь как включающий путь.

Например. Это будет выглядеть примерно так, если вы используете gulp

.pipe($.sass({
  includePaths: ['node_modules/bootstrap-sass/assets/stylesheets']
})

Тогда вы должны хорошо использовать:

@import 'bootstrap';

Он не будет импортировать такие вещи, как Javascript / Node.js. Он будет искать файл начальной загрузки в той же папке, что и файл, который его импортирует. Так что да, вам нужно использовать длинный путь или поместить файл начальной загрузки в ту же папку.

Другие вопросы по тегам