Автор оригинала: Quincy Larson.
Одна запястья запятой в одном файле JSON может разрушить ваше приложение. Но только если вы позволите этому.
Лучший способ остановить это, чтобы получить эту ошибку, прежде чем она когда-либо принимается в вашу кодовую базу. Это означает тесты. А для форматов файлов, таких как JSON, это также означает подвис собой.
Я собираюсь прогуляться по тому, как настроить TRAVIS CI и ESLINT на вашем репозитории GitHub, поэтому вы можете обнаружить ошибки отгонов в запросах по тяги, прежде чем они когда-либо делают его в вашу кодовую базу.
Но сначала немного Backstory на том, как я научился делать это.
В медицинской школе у них есть процесс обучения под названием Смотрите один, сделай один, учить один :
- Видите, кто-то выполняет операцию
- сделать эту операцию самостоятельно
- научить кого-то еще, как сделать эту операцию
Ну, я настроил Trvis CI + Eslint на одном из наших репозиториев. Тогда Эрик Леун попросил меня сделать это на другом репозитории. И теперь я учу тебя, как это сделать.
Смотрите один, сделай один, учить один.
В этом случае Эрик Леунг. попросил меня настроить TRAVIS CI Итак, Марк Макэван Можете установить Awesome_bot.
Вы отмечете, что внизу запроса на тягу Github включал небольшое баннер, поощряющий нас, чтобы настроить непрерывную интеграцию (CI), используя их недавно запущенный рынок. Это идеальное место для начала.
Шаг № 1: Установите Trvis CI на рынке GitHub
Трэвис CI – бесплатный и открытый источник. Таким образом, вы можете просто выбрать его в меню и пройти процесс оформления заказа.
Шаг № 2: Создайте новую ветвь
Если вы уже клонировать репозиторий На ваш локальный компьютер вы можете создать новую ветку, открывая репозиторий в вашем терминале и набрав:
git checkout -b feature/add-travis
Шаг № 3: Создайте файл .gitignore (если у вас еще нет)
Введите это в свой терминал:
touch .gitignore
Затем откройте файл .gitignore в вашем любимом редакторе кода и добавьте следующую строку:
node_modules
Presto. Теперь вы не будете случайно совершать какие-либо файлы пакета NPM к вашему репозитории.
Шаг № 4: инициализировать NPM (если вы еще этого не сделали)
Вам понадобится NPM для Eslint. В вашем терминале запустите:
npm init
Теперь вы можете ответить на много вопросов. Если вы спешите, вы можете ответить на них, ударив кнопку ввода несколько раз, чтобы принять ответы по умолчанию.
This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See `npm help json` for definitive documentation on these fields and exactly what they do. Use `npm install` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. package name: (how-to-contribute-to-open-source) version: (1.0.0) description: entry point: (index.js) test command: git repository: (https://github.com/FreeCodeCamp/how-to-contribute-to-open-source.git) keywords: author: license: (ISC) About to write to /Users/michaelq/web/how-to-contribute-to-open-source/package.json: { "name": "how-to-contribute-to-open-source", "version": "1.0.0", "description": "This is a list of resources for people who are new to contributing to open source.", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "git+https://github.com/FreeCodeCamp/how-to-contribute-to-open-source.git" }, "author": "", "license": "BSD-3-Clause", "bugs": { "url": "https://github.com/FreeCodeCamp/how-to-contribute-to-open-source/issues" }, "homepage": "https://github.com/FreeCodeCamp/how-to-contribute-to-open-source#readme" } Is this ok? (yes)
Теперь у вас есть файл Package.json в вашем репозитории.
Шаг № 5: Установите ESLINT и ваши расгибные пакеты
В зависимости от того, какие типы файлов находятся в вашем репозитории, вы можете установить различные различные подвижные пакеты. Репозиторий, на котором я работаю, это Как внести свой вклад в открытый источник (Дайте ему ⭐️,?).
Единственные файлы, которые в настоящее время используют его файлы Markdown, но мы неизбежно добавлю JSON в какой-то момент. Поэтому я включил как у Markdown и Json Eslint Packages.
Вот команда, которую я столкнул в моем терминале, чтобы установить все эти NPM:
npm install --save-dev eslint eslint-plugin-json eslint-plugin-markdown
Обратите внимание, что --save-dev Часть добавит эти пакеты в файл Package.json файл вашего репозитория.
Шаг № 6: Создайте и настройте свой файл .eslintrc
В вашем терминале введите:
touch .eslintrc
Затем откройте его с вашим любимым редактором кода. Вот что мой выглядит как для JSON и Markdown:
{
"plugins": [
"json",
"markdown"
]
}Шаг № 7: Создайте и настройте файл .travis.yml
В вашем терминале введите:
touch .travis.yml
Затем откройте его с вашим любимым редактором кода. Вот что похоже мои:
language: node_js
node_js:
- '6'
before_install: if [[ `npm -v` != 3* ]]; then npm i -g npm@3; fi
cache:
directories:
- node_modules
sudo: falseШаг № 8: Обновите свой package.json file
На шаге № 4, ваш NPM инициализация Команда создана Package.json файл. Когда вы сделали это, NPM добавил следующую строку для «Сценарии» Объект по умолчанию:
"echo \"Error: no test specified\" && exit 1"
Эта линия приведет к потерю сборки TRAVIS CI. Итак, давайте заменим его чем-то более значимым.
Вот как выглядит моя Package.json файл, когда я заменил эту линию с тремя новыми сценариями:
{
"name": "how-to-contribute-to-open-source",
"version": "1.0.0",
"description": "This is a list of resources for people who are new to contributing to open source.",
"main": "index.js",
"dependencies": {},
"devDependencies": {
"eslint": "^3.19.0",
"eslint-plugin-json": "^1.2.0",
"eslint-plugin-markdown": "^1.0.0-beta.6"
},
"scripts": {
"lint": "eslint . --ext .json --ext .md",
"pretest": "npm run lint",
"test": "echo \"No tests\""
},
"repository": {
"type": "git",
"url": "git+https://github.com/FreeCodeCamp/how-to-contribute-to-open-source.git"
},
"author": "",
"license": "BSD-3-Clause",
"bugs": {
"url": "https://github.com/FreeCodeCamp/how-to-contribute-to-open-source/issues"
},
"homepage": "https://github.com/FreeCodeCamp/how-to-contribute-to-open-source#readme"
}Обратите внимание, что существуют два способа, которые Travis CI могут проходить тесты. По умолчанию используется NPM тест Отказ Но другой способ использовать его в package.json файл. Вы можете прочитать больше об этом здесь Отказ
Также обратите внимание, что в вашем package.json Файл, вы можете определить скрипты, которые вы хотите, чтобы NPM запустить сначала, прежде чем запустится другие сценарии, добавив новый скрипт с помощью до префикс, как мы здесь сделали с Предтолет , который работает до тестовое задание .
Шаг № 9: Стадия, фиксируйте, затем нажмите
В вашем терминале наставьте новые файлы:
git add .gitignore git add .travis.yml git add .eslintrc git add package.json
И совершать:
git commit -m "add and configure Travis CI and ESLint"
Затем подтолкнитесь к собственной ветке репозитория на GitHub.
git push origin feature/add-travis
Шаг № 10: Откройте запрос на тягу в пользовательском интерфейсе GitHub
GitHub имеет хорошую особенность, где он обнаруживает ваш недавний толчок и предлагает, чтобы помочь вам создать запрос на тягу. Перейдите к репозиторию на GitHub и пройдите через его рабочий процесс запроса на тягу.
Шаг № 11: Убедитесь, что сбор по сборке
ОК – момент правды!
На ваш запрос на потяжку Трэвис CI должен немедленно добраться до работы. Если это не удается, он отправит вам электронное письмо, говоря:
Вы можете просмотреть журнал и попытаться выяснить, почему он не удался.
Как только вы исправите это, он отправит вам еще одно электронное письмо:
И интерфейс запроса на тягу будет выглядеть что-то подобное – указывая, что все ваши тесты и процессы Eslint прошли.
Шаг № 12: Партия!
Если вы играли на дому, поздравляю! Возьмите напиток по вашему выбору и похлопайте себя на спину. Теперь вы сможете обнаружить голововертыми ошибками в запросах Pull, прежде чем слиться. И вся ваша команда может немного легче отдохнуть.
Отсюда вы можете продолжать постепенно добавлять больше тестов, а Travis CI всегда будет стоять, готовые к послушивам пробежать эти тесты для вас. Это сила открытого источника!
Спасибо за чтение, и счастливое кодирование!
Я пишу только о программировании и технологиях. если ты Подпишись на меня в Твиттере Я не буду тратить свое время.
Оригинал: “https://www.freecodecamp.org/news/how-to-stop-errors-before-they-ever-hit-your-codebase-with-travis-ci-and-eslint-7a5a6b1fcd4a/”