Мы будем рады, если вы внесете свой вклад и сделаете Material Components для веба еще лучше, чем он есть сегодня! Вот руководства, которые мы хотели бы, чтобы вы следовали:
Политики и процедуры внесения вклада в Material Components можно найти в репозитории основной документации Material Components на странице внесения вклада.
Для работы с 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
Каждый компонент требует следующих элементов для завершения:
packages/<mdc-component>/test/
с достаточным охватом (который мы автоматически контролируем).Вы можете найти гораздо больше информации по сборке компонентов в нашем руководстве по созданию компонентов
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 )