Как добавить git prehook в tslint? - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь добавить prehook, если есть какие-либо проблемы с кодом, которые не удалось зафиксировать. Какой правильный подход для его реализации.

tslint.sh

#!/bin/sh
sh ./npm-install.sh
if [ $? -ne 0 ]; then
  echo "npm-install error, exiting.."
  exit 1
fi
echo "Running ts lint"
npm run lint
if [ $? -ne 0 ]; then
  echo "Unit tests error, exiting.."
  exit 1
fi

Ответы [ 3 ]

0 голосов
/ 03 июля 2018

package.json:

{
  "name": "app name",
  "version": "0.1.0",
  "license": "MIT",
  "author": "author",
  "contributors": [

  ],
  "description": "...",
  "scripts": {
    "ng": "ng",
    "precommit": "lint-staged"
  },
  ...,
  "lint-staged": {
    "*.{ts,js,sccs,json}": [
      "ng lint app-name --fix",
      "./node_modules/.bin/prettier --write",
      "git add"
    ]
  },
  "dependencies": {
    ...
  },
  "devDependencies": {
    ...
    "lint-staged": "^7.2.0",
    "prettier": "^1.13.5",
    "ts-node": "^6.1.2",
    "tslint": "^5.10.0",
    "typescript": "2.7.2"
  }
}
0 голосов
/ 03 июля 2018

У меня был успешный опыт, чтобы реализовать это с:

  1. husky => указать git hook
  2. lint-staged => запустить команду для промежуточных файлов в git (поэтому нет необходимости запускать tslint для всех файлов)

Справка:

  1. https://github.com/okonet/lint-staged
  2. https://www.npmjs.com/package/husky

в package.json, укажите lint-staged и precommit в scripts поле:

"dependencies": ...,
"devDependencies": ...,
"scripts": {
  "precommit": "lint-staged"
},
"lint-staged": {
    "*.ts": [ // target to all typescript files in staged stage in git
      "npm run lint", // your lint command
      "git add"   
    ]
  }
0 голосов
/ 02 июля 2018

Вот один из способов: https://www.npmjs.com/package/pre-commit

pre-commit - это установщик ловушки перед коммитом для git. Это обеспечит прохождение вашего теста npm (или других указанных сценариев), прежде чем вы сможете зафиксировать свои изменения. Все это удобно настроить в вашем package.json.

...