Я работаю над проектом с открытым исходным кодом в Ruby on Rails, который использует Webpacker и React.
Этот проект в настоящее время представляет следующие загрузчики для конфигурации:
const environment = require('./environment').toWebpackConfig()
const customRules = {
module: {
rules: [
{
...
},
{
...
},
{
test: /(\.css|\.scss|\.sass)$/,
loader: 'style-loader!css-loader!sass-loader?modules&localIdentName=[name]---[local]---[hash:base64:5]'
}
]
}
}
module.exports = Object.assign({}, environment, customRules)
Обратите внимание, что этов основном переопределяет любую конфигурацию, которую генерирует Webpacker, что, на мой взгляд, является неправильным подходом.
Я хотел бы настроить эти загрузчики стилей перед вызовом .toWebpackConfig()
.До сих пор я просто удалял все связанные загрузчики, включенные по умолчанию, и добавлял это вручную ...
const { environment } = require('@rails/webpacker')
environment.loaders.delete('css')
environment.loaders.delete('moduleCss')
environment.loaders.delete('sass')
environment.loaders.delete('moduleSass')
environment.loaders.append('style', {
test: /(\.css|\.scss|\.sass)$/,
loader: 'style-loader!css-loader!sass-loader?modules&localIdentName=[name]---[local]---[hash:base64:5]'
})
module.exports = environment.toWebpackConfig()
И хотя это работает, как и ожидалось, я думаю, что это довольно хакерское решение.
Есть ли лучший способ установить эти параметры: style-loader!css-loader!sass-loader?modules&localIdentName=[name]---[local]---[hash:base64:5]
без необходимости удалять загрузчики по умолчанию?
Вот оригинальный PR в Github на тот случай, если кто-то захочетпопробуй сам