Рассмотрим следующий каталог с именем styles
:
_partial1.scss
_partial2.scss
_partiala.scss
_partialb.scss
_partialx.scss
_partialy.scss
stylesheet1.scss
stylesheet2.scss
stylesheet3.scss
Используя командную строку, невероятно легко скомпилировать эти три родительских файла .s css в css, выполнив следующие действия:
dart-sass styles:dist/css
Это приводит к каталогу с именем dist/css
, который содержит:
stylesheet1.css
stylesheet2.css
stylesheet3.css
Однако мне нужно также включает .s css и. css из node_modules
. Следующее будет работать:
"dart-sass --load-path=node_modules/some-location-one/css --load-path=node_modules/some-location-two/css --load-path=node_modules/some-location-three/css styles:dist/styles"
Но мне нужно сделать css из node_modules
настраиваемым. По этой причине я пытаюсь использовать sass JavaScript API (вместо CLI выше):
package. json:
scripts": {
"sass": "node sassConfig.js"
},
sassConfig. js:
const sass = require('sass');
const fs = require('fs');
const DEST_DIR = 'dist';
const DEST_AND_SUB_DIR = "dist/styles";
// check if destination directory exists. if not, create it.
if (!fs.existsSync(DEST_DIR)){
fs.mkdirSync(DEST_DIR);
}
// check if destination/sub-directory exists. if not, create it.
if (!fs.existsSync(DEST_AND_SUB_DIR)){
fs.mkdirSync(DEST_AND_SUB_DIR);
}
const result = sass.renderSync({
file: "styles/one-of-many.scss", // need to do all parent .scss in this directory, not just one file
includePaths: [
"node_modules/some-location-one/css", // works fine
"node_modules/some-location-two/css",
"node_modules/some-location-three/css"
],
sourceMap: true
});
fs.writeFile( DEST_AND_SUB_DIR + "/styles.css", result.css, function (err) {
if (err) return console.log(err);
});
Я подумываю о том, чтобы сделать проверку для родительского .s css и выполнить для l oop, а затем выполнить цикл для каждого родителя. Но это похоже на взлом. Я пролил документацию по sass и ничего не могу найти по этому поводу. Я бы подумал, что если есть простой способ сделать это в CLI, то будет эквивалент в sass JavaScript API , но я этого просто не вижу. Любая помощь приветствуется.