1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-material-components-web

Клонировать/Скачать
CONTRIBUTING.md 13 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 02.06.2025 13:26 9c60297

Внесение вклада в Material Components Web (MDC Web)

Мы будем рады, если вы внесете свой вклад и сделаете Material Components для веба еще лучше, чем он есть сегодня! Вот руководства, которые мы хотели бы, чтобы вы следовали:

Общие руководства по внесению вклада

Политики и процедуры внесения вклада в Material Components можно найти в репозитории основной документации Material Components на странице внесения вклада.

Процесс разработкиМы стремимся сделать разработку Material Components Web как можно более беспрепятственной, как для нас самих, так и для нашего сообщества. Эта секция должна помочь вам начать работу с кодовой базой MDC Web. Перед началом разработки вы можете ознакомиться с нашим обзором архитектуры и лучших практик, чтобы лучше понять нашу общую структуру.### Настройка среды разработки

Для работы с MDC Web вам потребуется последняя версия nodejs. Мы тестируем наши сборки с использованием как последней, так и LTS версий node, поэтому использование одной из этих версий рекомендуется. Вы можете использовать nvm, чтобы легко установить и управлять различными версиями node на вашей системе.

Примечание: Если вы планируете коммитить обновленные или новые зависимости, убедитесь, что вы используете npm 5, который также правильно обновит package-lock.json, когда вы устанавливаете или обновляете пакеты.

После установки node просто клонируйте наш репозиторий (или ваш форк его) и выполните npm install.

git clone git@github.com:material-components/material-components-web.git  # или путь к вашему форку
cd material-components-web && npm i

Сборка компонентов

Каждый компонент требует следующих элементов для завершения:

  • Инженерный описательный документ, который должен быть привязан к комментарию в задаче GitHub, где мы отслеживаем компонент. Таким образом, основная команда может просмотреть и одобрить описательный документ. Описательные документы должны быть одобрены до отправки PR. Пожалуйста, скопируйте этот шаблон Google документа, чтобы создать свой описательный документ. Мы обнаружили, что требование к инженерному описательному документу позволяет нам ускорить разработку, предлагая более информированные отзывы по реализации компонентов. Это приводит к компонентам, которые учитывают все концепции, которые должны учитывать компоненты MDC Web (RTL, a11y и т.д.) еще до этапа PR, что означает более быстрые этапы проверки и слияния :smile:.
  • Класс основания, который интегрирован в реальные компоненты
  • Класс компонента, использующий чистый JS + SCSS
  • README.md в подпапке, содержащий документацию для разработчиков по компоненту, включая использование.
  • Набор юнит-тестов внутри packages/<mdc-component>/test/ с достаточным охватом (который мы автоматически контролируем).

Вы можете найти гораздо больше информации по сборке компонентов в нашем руководстве по созданию компонентов

Сборка MDC Web

npm run build # Очищает build/ и собирает незаминифицированные файлы для каждого пакета MDC Web
npm run build:min # Собирает заминифицированные файлы для каждого пакета MDC Web
npm run dist # Выполняет оба вышеупомянутых команды последовательно

Линтер / Тестирование / Управление охватом

npm run lint:js # Линтер JavaScript с использованием eslint
npm run lint:css # Линтер (S)CSS с использованием stylelint
npm run lint # Выполняет оба вышеупомянутых команды параллельно
```npm run fix:js # Выполняет eslint с включенным параметром --fix
npm run fix:css # Выполняет stylefmt, который помогает исправить простые ошибки stylelint
npm run fix # Выполняет оба вышеупомянутых команды параллельно

npm run test:watch # Выполняет karma в Chrome, перезапуская при изменении исходных файлов

npm test # Проверяет все файлы, запускает karma, выполняет тесты на TypeScript и затем запускает проверку охвата. npm run test:unit # Запускает только тесты karma


#### Запуск тестов в разных браузерах

Если вы вносите крупные изменения или разрабатываете новые компоненты, мы рекомендуем быть хорошим гражданином и тестировать ваши изменения в разных браузерах! Очень простой способ сделать это — использовать [sauce labs](https://saucelabs.com/), который мы используем для тестирования PR наших коллег на TravisCI:

1. [Зарегистрируйтесь](https://saucelabs.com/beta/signup) для аккаунта в sauce labs (выберите план "Open Sauce"; [он бесплатный](https://saucelabs.com/opensauce/)!)
2. [Скачайте sauce connect](https://wiki.saucelabs.com/display/DOCS/Sauce+Connect+Proxy) для вашей ОС и убедитесь, что папка `bin` в скачанном архиве находится в вашем пути `$PATH`.
3. Перейдите к вашей панели управления, прокрутите вниз до места, где написано "Access Key", и нажмите "Show"
4. Введите ваш пароль, когда вас об этом попросят
5. Скопируйте ваш access key
6. Запустите `SAUCE_USERNAME=<ваш-username-saucelabs> SAUCE_ACCESS_KEY=<ваш-access-key-saucelabs> npm test`Это запустит Karma для выполнения наших unit-тестов в поддерживаемых нами браузерах и убедится, что ваши изменения не введут регрессии.

В качестве альтернативы, вы можете запустить `npm run test:watch` и вручную открыть браузеры / использовать виртуальные машины / использовать эмуляторы для тестирования ваших изменений.

### Стиль кодирования

Вся наша система стиля кодирования автоматически поддерживается с помощью линтеров. Изучите наш [eslint конфиг](https://github.com/material-components/material-components-web/blob/master/.eslintrc.yaml) (влияющий на Google's Javascript Styleguide) а также наш [stylelint конфиг][css-style-guide] (с подробными комментариями и оправданиями для каждого правила) для получения дополнительной информации.

### Подача Pull Requests

При подаче PR убедитесь, что вы следуете нашим конвенциям для сообщений о коммитах (которые такие же, как [angular's](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#commits)); наш `commit-msg` хук автоматически обеспечивает это. Мы также поддерживаем [commitizen](https://www.npmjs.com/package/commitizen), который вы можете использовать для автоматического форматирования сообщений о коммитах.При подаче PR для крупных изменений, убедитесь, что вы включили достаточное количество информации в описании, чтобы рецензенты PR знали, что включают изменения на высоком уровне, мотивацию для внесения этих изменений и то, какие они затрагивают. Если вы провели экспериментальную работу в вашем ветке/форке и зафиксировали изменения с помощью `git commit --no-verify`, вы можете слить их в один правильно сформатированный коммит перед отправкой.Наконец, полезно убедиться, что ваша ветка/форк обновлена до текущего состояния ветки master. Вы можете это сделать, выполнив команду `git pull --rebase origin master` в вашей ветке.

> **ЗАМЕЧАНИЕ**: Пожалуйста, не объединяйте master с вашей веткой. Всегда используйте `pull --rebase`. Это гарантирует линейную историю коммитов, помещая вашу работу после уже существующих коммитов в master, независимо от даты их создания.

[js-style-guide]: https://google.github.io/styleguide/jsguide.html
[css-style-guide]: https://github.com/material-components/material-components-web/blob/master/.stylelintrc.yaml

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-material-components-web.git
git@api.gitlife.ru:oschina-mirror/mirrors-material-components-web.git
oschina-mirror
mirrors-material-components-web
mirrors-material-components-web
master