ОБНОВИТЬ

Нет необходимости читать это, если вы просто пытаетесь действовать, не зная, как это сделать. То, что написано в этом посте, добавлено в приложение grommet react app. Я использовал это, и это здорово. Я даже развернул его прямо в Heroku.

Использование Grommet с приложением create-react-app

Я недавно закончил свое первое пригодное для использования приложение React / Redux и, как это обычно бывает с первыми проектами, я сразу готов переписать его, используя знания, которые я получил во время первого раунда.

Я хорошо учился. Я написал свой файл WebPack с нуля, узнал о жизненном цикле компонентов, создал переходники для обработки асинхронных запросов API и придумал (трудный путь) использовать неизменяемые структуры данных для обработки изменений состояния. Я узнал достаточно, чтобы чувствовать себя комфортно, зная, что я делаю и с чем не хочу иметь дело (когда мне это не нужно), когда я начинаю новый проект. Общие конфигурации сборки и отдельные стили компонентов четко попадают в эту категорию.

Хорошие новости! Другие люди приложили ОЧЕНЬ много работы, чтобы позаботиться об этих вещах за меня.

создать-реагировать-приложение

Create-react-app, отстаиваемый Дэном Абрамовым и поддерживаемый Facebook, - это проект с открытым исходным кодом, нацеленный на предоставление наилучшей конфигурации сборки для начальной загрузки приложения React. После простой установки, создания и запуска приложение create-react-app обслуживает проект с почти всем, что мне нужно.

Люверс

Помимо прочего, Grommet - это набор компонентов React, предназначенный для корпоративных приложений. Это прекрасный набор компонентов пользовательского интерфейса, который придаст профессиональный вид следующей версии моего небольшого приложения.

но…

Стили люверсов находятся в SASS, и, хотя очень тщательно, приложение create-react-app не поддерживает загрузку SASS из коробки. Хотя я мог бы включить файлы min.css, в будущем я, возможно, захочу отредактировать стиль. Итак, мне нужно катапультироваться.

Первоначально приложение create-response-app абстрагирует все файлы конфигурации, чтобы обеспечить максимально удобное взаимодействие с пользователем. «Выбросив» эту настройку, я получаю все файлы конфигурации и могу настроить конфигурацию сборки.

LDT (Давай сделаем это)

Изнутри каталога проекта я запускаю

npm run eject

create-react-app, дай мне знать, что пути назад нет, но я продолжаю!

Теперь в моем каталоге есть папка config, в которой находятся два файла webpack.

webpack.config.dev.js
webpack.config.prod.js

Поскольку у меня возникли проблемы с изучением веб-пакета, когда я создал первую версию этого приложения, я знаю, что мне нужно отредактировать загрузчики в этих файлах, чтобы добавить поддержку SASS. Я могу получить необходимые изменения из автономной установки для Grommet.

Во-первых, мне нужны загрузчики.

npm install --save-dev node-sass sass-loader

Для каждого файла webpack я просто добавляю загрузчик sass в массив загрузчиков.

{  
  test: /\.scss$/,
  loader: 'style!css!sass?outputStyle=compressed'
}

Также убедитесь, что файл знает, что я обрабатываю файлы SASS с помощью загрузчика, добавив расширение к массиву exclude.

exclude: [
          /\.html$/,
          /\.(js|jsx)$/,
          /\.css$/,
          /\.scss$/,
          /\.json$/,
          /\.svg$/
         ],

… И массив extensions.

extensions: ['.js', '.json', '.jsx', '.scss', ''],

Затем после (как снаружи) объекта модуля добавьте пути sassLoader.

sassLoader: {
  includePaths: [
    './node_modules'
  ]
},

Наконец, я могу добавить файлы scss в свой файл index.js и продолжить свой проект.

import '../node_modules/grommet/scss/vanilla/index.scss';

Забрать

  • Найдите время, чтобы познакомиться со своими инструментами. Они податливы, но только в умелых руках.