#json #sass #gulp
#json #sass #глоток
Вопрос:
Мне нужно использовать переменные из options.json
in .sass
файлов и .twig
шаблонов с gulp. Для twig все отлично работает только с
pipe(data(function(file) {
return JSON.parse(fs.readFileSync('app/options.json'));
}))
.pipe(twig())
Но с sass есть проблема, которую я не могу решить.
Я нашел несколько похожих вопросов, но для версии Ruby. Также эти плагины gulp не подходят из-за ссылки в файле json:
- gulp-json-sass
- gulp-json-to-sass
Мой файл json выглядит следующим образом:
{
"page": {
"view": "mockup",
"bg": "gradient",
"buttons": "two"
},
"sass": {
"bgOpacity": ".5",
"bgPicture": "https://pics.freeartbackgrounds.com/midle/Street_in_Lund_Sweden_Background-1287.jpg",
"bgColor": "$gradient-4"
}
}
Что я пытаюсь сделать, так это использовать только часть переменных json в файле sass следующим образом:
$opacity: $sass-bgOpacity;
Возможно ли это? Может быть, есть другой способ, я просто хочу оформить весь мой сайт ( .twig
шаблоны, sass
переменные) из одного options.json
файла.
Очень благодарен за вашу помощь.
P.S. я не очень хорош в английском языке, поэтому не стесняйтесь поправлять меня.
Комментарии:
1. @Amir, спасибо, что улучшил мой вопрос.
2. Всегда пожалуйста. Проверьте мой ответ. Решает ли это вашу проблему?
3. Да, еще раз спасибо и извините за долгое ожидание.
Ответ №1:
Вы пробовали использовать node-sass-json-importer? Он импортирует файл json в ваш sass, и вы можете получить доступ к переменным с синтаксисом, подобным sass-variables. Он подключается к API-интерфейсу импортера узла-sass.
Вот пример:
style.scss
@import 'some.json'
body {
font-size: $font_size_in_json
}
some.json
{
"font_size_in_json": "12px"
}
gulpfile.js
gulp.src('source/**/*.scss')
.pipe(sassImportJson({'isScss': true, 'cache': false}))
.pipe(sass())
.pipe(gulp.dest('dist/resources/css'))
Комментарии:
1. Если это сообщение отвечает на ваш вопрос, пожалуйста, примите его