У меня возникла проблема с компиляцией файла .styl стилусом в css. Если файл стилуса содержит @import, я получаю ошибку «не удалось найти файл @import». Например, у меня есть два простых файла стилуса:
root
- specific
- particularButton.styl
- button.styl
// --- button.styl ---
.button
// some styles
// --- specific/particularButton.styl ---
@import "../button.styl"
.particular-button
// some styles
и я пытаюсь преобразовать их в css с помощью этого кода:
const stylus = require('stylus');
const fs = require('fs');
const filePath = // path to particularButton.styl
stylus(fs.readFileSync(filePath, 'utf8'))
.set('paths', [
// path to a folder that contain "button.styl"
])
.render(function(err, css) {
console.info(err);
// <some action like> fs.writeFileSync(cssFileName, css);
})
Согласно API стилуса, я попытался заставить его работать с .set('path' ... и без этой настройки. Но безуспешно.
Может ли кто-нибудь помочь с этим?
P.S. среда: OSX Mohave, узел: 6.9.1, npm: 6.4.1, стилус: 0.54.5
Upd
Проблема в относительном пути @import "../button.styl". Если я заменю его абсолютным путем к button.styl, он станет работать. Но вроде бы довольно плохое решение ...





Хорошо, я только что узнал.
Моя проблема в том, что я пытаюсь добавить неправильный путь в метод .set(). Вероятно, это было немного нечетко задокументировано, идиот.
В случае относительного импорта в particularButton.styl необходимо добавить путь к самому файлу. Не импортирующий файл.
Так и должно быть:
stylus(fs.readFileSync(filePath, 'utf8'))
.set('paths', [
// path to a folder that contain "particularButton.styl"
])