Мне этого не нужно было делать, потому что я использовал create-react-app, в конфиге вебпака которого уже произведена настройка sass?
Да.
Если п1 верный, то как в таком случае это реализовано? Я ведь мог установить не sass, а node-sass или dart-sass или любую другую библиотеку?
Примерно так:
const fs = require("fs");
function modulesHasOneOf(moduleNames) {
return moduleNames.some(name => {
const modulePath = require.resolve(name);
return fs.existsSync(modulePath);
});
}
const isSassInstalled = modulesHasOneOf(["sass", "dart-sass", "node-sass"]);
const webpackConfig = {
...
module: {
rules: [
{
test: isSassInstalled ? /\.scss$/ : /\.css$/,
use: ["css-loader", isSassInstalled && "sass-loader"].filter(Boolean)
}
]
}
};
UPD:
Все оказалось проще:
const config = {
module: {
rules: [
{
test: /\.css$/,
use: ["css-loader"]
},
{
test: /\.s(a|c)ss$/,
use: ["css-loader", "sass-loader"]
}
]
}
};
И уже в зависимости от расширения файла выбирает то или иное правило. Главное, да, просто поставить пакет (dart-,node-)sass.
https://github.com/facebook/create-react-app/blob/...