Я собираюсь импортировать стили с CSS-модулем и заставить его работать с рендерингом на стороне сервера. Я пробовал следующие методы, но у каждого есть своя оговорка. Каков наилучший способ для require('.style.scss')
, если есть какие-либо побочные эффекты?Поддержка на стороне сервера CSS-модулей
Использование css-modules-require-hook:
Преимущество: Простота настройки. Вам просто нужно вызвать hook в начале кода сервера. Вам не нужно изменять компоненты.
Caveat: Он изменяет
require.extensions
глобальный объект, который является устаревшим.Использование isomorphic-style-loader:
Advantage: Нет больше крючков для
require.extensions
.Caveat: Обертывание компоненты с HOCs, которые используют Реагировать
Context
, который является экспериментальным API и, скорее всего, перерыв в будущих версиях React.Использование webpack-isomorphic-tools:
Advantage: Нет зависимостей от
require.extensions
илиContext
(AFAIK).Caveat: Обертка сервера внутри экземпляра webpack-изоморфного инструмента. И можем ли мы избавиться от webpack-assets.json?
Пакетирующие сервер с WebPack:
Преимущество: Нет больше крючков или инъекций.
Caveat: В разработке, очень громоздок, чтобы связать все, когда изменения коды и даже делают его труднее для отладки в большом комплектных
.js
файла. Не уверен - вам может понадобиться передать комплект.js
для тестирования бегуна.
Отказ от ответственности:
- Преимущества и предостережения ниже просто мои два цента, и на самом деле я люблю все библиотеки, плагины и подходы, которые они приняли, чтобы решить эту проблему и реально оценить свои усилия ,
- Я не являюсь носителем английского языка, пожалуйста, исправьте меня, если я искажу себя.
Можете ли вы объяснить, что вы имеете в виду под 'require.extensions' ??? Я переживаю одно и то же, и почти получаю работу 'css-modules-require-hook', но не уверен, что это действительно правильный путь. – pedalpete