Проблема в том, что Webpack был настроен обрабатывать все сss файлы как модули. При подключении skeleton.css из папки node_modules, Webpack автоматически ставил свой префикс на все классы, и стили из библиотеки исчезали (потому что у нее .skeleton, а Webpack ее меняет на dash-abc123 и поиск слетает). Решение: сделать так, чтобы Webpack обрабатывал только сss внутри нашего проекта как модули, а все что из node_modules - "как есть".
Просто добавляем одну строчку - пусть Webpack понимает, что все что из node_modules нам пока не надо трогать. Вот пример:
module: {
rules: [
{
test: /\.(js|jsx|tsx|ts)$/,
exclude: /node_modules/,
loader: 'babel-loader',
},
{
test: /\.css$/i,
oneOf: [
{
// твои файлы — модули
include: path.resolve(__dirname, 'src'),
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
options: {
modules: {
localIdentName: 'dash-[hash:base64]',
},
},
},
],
},
{
// всё остальное — обычный css
exclude: path.resolve(__dirname, 'src'),
use: [
MiniCssExtractPlugin.loader,
'css-loader',
],
},
],
},
],
}
И всё, теперь react-loading-skeleton работает, и у нас сохранена изоляция стилей.