我只想对在请求请求中修改的文件而不是整个项目运行tslint
。
git diff --name-only develop -- *.ts
成功打印出在功能分支和开发之间已更改的文件名。
我正在尝试将该命令传递到我的lint命令中。 Lint可以输入要运行的文件列表,而不是通过在以下位置放置文件名来运行所有文件:
git diff --name-only develop -- *.ts | npm run lint
这在我们的Jenkins框上有效,但是在我的本地Windows计算机上,lint命令的末尾没有附加文本。
C:\ code> git diff-仅命名开发-* .ts | npm运行皮棉
tslint -c。\ tslint.json -p。\ tsconfig.json
是否有一种简单的单行方法,该方法仅对分支中已更改的文件运行lint?
答案 0 :(得分:2)
我通过运行获得了已修改文件的列表
git diff-仅名称--diff-filter = ACMR origin / dev-123 ... develop-* .ts
origin/dev-123
是源分支,develop
是目标分支。
我将该命令的输出放入一个数组中,然后对文件数组运行了linter。
答案 1 :(得分:1)
您可以使用此程序包在仅diffs上加载打字稿:
https://github.com/AtakamaLLC/lint-diffs
pip install lint-diffs
然后将配置.lint-diffs
修改为包括:
[tslint]
extensions=.ts
regex=(?P<err>[^ :]+) *(?P<file>[^:]+):(?P<line>\d+):
command=tslint -c tslint.json -p tsconfig.json
always_report=E
这里假设ts-linter的输出为prose
。如果您的配置文件使用自定义格式,则必须修改正则表达式以使其匹配。
答案 2 :(得分:0)
您可以使用Git Bash运行以下内容:
npm run lint $(git diff --name-only --diff-filter=ACMR origin/dev-123...develop -- *.ts)