Отредактируйте sass, прежде чем node-sass скомпилирует его в css

Я искал некоторое время, но еще не нашел решения, я использую node-sass, и мне нужно отредактировать scss перед его компиляцией (точнее, переменные), к сожалению, как только вы выполните функцию рендеринга, это компилируется непосредственно в css, есть ли способ отредактировать импортированный scss до того, как node-sass скомпилирует его? Или прочитать scss и разрешить весь импорт без node-sass?

благодарю вас


person lucassou    schedule 30.07.2018    source источник


Ответы (1)


Сначала вы должны добавить ключевое слово !default в конец ваших переменных scss, а затем вы можете передать параметры, которые вы хотите переопределить, например:

У вас есть переменная для основного цвета, в файле scss вы должны определить ее как $primaryColor = #fff !default, а затем, переопределяя этот столбец, вы должны отправить параметры, такие как { primaryColor: '#bbb' }, этот параметр переопределит вашу переменную primaryColor в вашем файле scss.

const generateSassVariables = map => Object.keys(map) .map(name => `$${name}:${map[name]};`) .join('\n');

sass.render( { data: `${generateSassVariables(newVariables)}@import '${scssFilePath}';`, includePaths: [styleBasePath, 'app/'], outputStyle: 'compressed', }, (error, result) => {..... })

person satuzcuoglu    schedule 30.07.2018