--exclude
CLI 标志自 TSLint v3.6 起可用。 此问题现在跟踪.tslintignore
文件的功能请求。
抄送: https ://github.com/madskristensen/WebEssentials2013/issues/617
从JsHint docs中,cli 选项中有两个排除标志:
- 排除
允许您指定不想被 linted 的目录。
--排除路径
允许您提供自己的 .jshintignore 文件。 例如,您可以将 JSHint 指向您的 .gitignore 文件并使用它来代替默认的 .jshintignore。
请向我们提供类似的标志,以便我们可以传递 .tslintignore 文件以在某些批处理/自动执行器脚本在其上运行 lint 时排除文件和文件夹。
参见 JsHint 对该功能的实现: cli.js#L182-L208及其调用者; 收集功能。
好建议。 我们会调查的。
+1
对于 TSD,我想在初始化新项目时在用户输入文件夹中生成它。
+1
这是将 lint 错误视为阻塞所必需的。 我希望我的代码被检查,而不是供应商代码。
+1
+1
+1 这正是我们需要的解决方案。 我们在 d.ts 文件上收到了一些 tslint 错误。 能够排除文件夹和特定文件将非常重要,因为我们也不想检查我们没有编写的代码。
我愿意试一试,但我不知道把它放在哪里。 我们希望这是一个 cli 功能还是我们也想在库中支持它?
如果在库中有点奇怪,因为 lint() 方法返回一个结果对象,所以我们需要返回一个有点虚拟的空结果对象。
请参阅此处了解正在进行的工作,但是是的,不确定上述内容。
https://github.com/DickvdBrink/tslint/compare/palantir :master...Di ckvdBrink:ignoreFile
我们正在使用 Visual Studio 和 Web Essentials 工具。 对我们来说,理想的工作流程是指定一个 .tjshintignore 文件,其中包含类似typings\
的内容,它将忽略该文件夹中的所有 d.ts 文件。 我不确定 Web Essentials 是使用 cli 功能还是库,所以我很难知道。 我现在实际上有点困惑,因为我发现这个似乎表明解决方案可能已经存在的线程? https://github.com/madskristensen/WebEssentials2013/issues/617
我认为它已关闭,因为有人创建了此问题,请参阅下面的引用:
Would you like to send them a feature request?
I see somebody already has. Thanks :-)
啊,有道理。 误读了。
我认为通过 CLI 实现它现在很好。 使用 grunt-tslint 的人已经可以通过 grunt 的文件/目录 globbers 排除文件。
我们还在考虑对 Web Essentials 中所有基于节点的服务进行全局排除: https://github.com/madskristensen/WebEssentials2013/issues/589。 尽管如此,在 tslint 中具有该功能有其自身的意义。
更新:在 web-essentials 中,该功能随 nightly build v2.2.4 一起提供。
对此有任何更新吗?
这似乎是一个相对重要的功能,应该优先考虑。 想从一个SO question中注意到对这个功能的兴趣。
我并不特别认为需要.tslintignore
文件,但我更喜欢添加--exclude
CLI 选项的更简单的想法。
通过 tsconfig.json (#858) 支持这一点可能会更好,而不是在 CLI 标志中重新实现它......
嗯,这样做的困难在于您可能想要编译与 lint 不同的文件。 所以我可能会看到使用tsconfig.json
,然后还使用--exclude
来不检查一些通常包含的文件。
与 CLI 不同,这不是 tslint.json 文件的自然契合,然后在https://github.com/palantir/tslint/blob/master/src/tslint添加一个解析“ignorePaths”的忽略检查
+1
+1,一个 .tslintignore 会很棒
+1 为 .tslintignore 或添加一个选项以忽略 tsconfig.json 中的某些路径
它可能类似于https://github.com/bbatsov/rubocop#including exclude -files
您需要帮助实施它吗?
作为第一遍,我们将很快合并#1006,它添加了一个简单的 CLI --exclude
选项。 这能让你走得更远吗? 如果您在tslint
之上使用其他工具,那么它可能具有 glob / exclude 支持(grunt / gulp / etc)。 这对tslint.json
的支持有多重要?
我不再从 NPM 脚本中调用 tslint,但对于那些这样做的人来说可能很重要,因为 NPM 不提供(而且我相信它永远不会)跨平台 glob 支持。
我认为在tslint.json
文件中为您想要或不想 lint 的文件添加选项不是一个好主意。 它似乎不适合那里。 它也与jshint的配置方式不一致。 是的,它们是两种不同的工具,但它们实际上做的事情是一样的。 由于 TS 是 JS 的超集,两者之间应该有一些一致性。 我宁愿有一个.tslintignore
文件(就像.jshintignore
)来保持 JS 和 TS 之间的一致性。 将其与tsconfig.json
分开,因为 linting 未编译。
+1 CLI 选项,这是一个好的开始。
想提一下 #1006 合并并在一个月左右前发布,所以如果您使用的是最新版本的 TSLint CLI,您将有一个exclude
标志可供使用。
+1
+1
+1
人们在这里 +1 做什么? 自 v3.6 以来,CLI 中提供了一个--exclude
标志,它允许您排除 glob(文件、路径等)。
@adidahiya例如,它对 WebStorm 没有帮助。 没有指定标志的选项。
我知道,这应该是 WebStorm 开发人员的功能请求,但似乎在 ts-lint 方面实现起来非常容易。 默认情况下,这是为其他 linting 库完成的。 那么为什么不这样做呢?
@fyodorvi很酷,我更新了问题标题和描述。 我们可能希望像解析tslint.json
.tslintignore
文件的路径。
新文件的优缺点与将其设为tslint.json
中的新字段?
对于想要将 tslint 与 WebStorm 一起使用的人,有一个解决方法:
您可以在 node_modules 文件夹中放置空的(带有“{}”) tslint.json
文件,并在 WS 中启用“搜索 tslint.json”选项。 这将完全重置 node_modules 文件夹的所有 tslint 规则,并且它将对供应商代码保持沉默(或者如果您愿意,可以在此处添加特定规则)
我一直在关注这个线程,以便能够专门使用 vscode 排除文件(因为在名称更改为特定于 .tslintignore 之前)。 我想让其他人知道谁正在尝试将 exclude 与 vscode 集成,这是一个单独的问题,并且最近针对 vscode 的 tslint 排除了 PR 。
@adidahiya在 tslint.json 中包含目录或文件数组的字段就足够了,当我们已经在项目中定义了配置文件时,我宁愿不用担心另一个文件来控制此业务。
@Karabur你的解决方法对我不起作用,我什至尝试添加一个空的规则对象,我错过了什么吗?
一个文件就够了。 这也符合 tsconfig,json 的工作方式。
$ tslint.json
中的exclude
选项会很好(只有一个文件可以使用这种方式),这就是 $ tsconfig.json
的glob
忽略部分的名称为好吧(是的 tsconfig.json 包含/排除现在支持最新的 TypeScript 中的 glob)
任何人都知道 eslint 是做什么的,因为我相信他们也会遇到这个问题? :玫瑰:
现在, tslint.json
无法控制 _what_ 被 linted,它只控制 _how_ 文件被 linted。 事实上,根据您的设置方式,TSLint CLI 实际上可以在同一运行中通过不同的规则对不同的文件进行 lint。
我不反对 $#$ tslint.json
$#$ 中的exclude
选项,但它最终可能会是一个轻微的范式转变,必须仔细考虑。
PS 总是很高兴听到您的反馈@basarat ,今天刚刚在阅读您的 TS gitbook 😉
我刚刚发布了一个新版本的alm 与 tslint与版本0.3.0
集成:heart:
在将它放在我的脑海中之后,这里是我为 IDE 集成所采用的设计的摘要,并且看起来效果很好:
tsconfig.json
中的所有文件都被检查,除了.d.ts
文件tslint.json
应使用findup
中的tsconfig.json
确定。我也在这里记录了这一点: https: //basarat.gitbooks.io/alm/content/features/lint.html 随意使用想法/源代码进行任何其他 IDE 集成:rose:
@basarat我认为这些选择听起来很完美! 我还没有尝试过alm,但我很快就会尝试一下💻
请停止发布 +1 评论,并在原始问题描述上使用内置的 Github upvoting 功能。 我现在要删除你的 +1 评论。
三年过去了,这还没有落实? 怎么会,这是 IMO 最琐碎和最重要的功能之一。
三年过去了,这还没有落实? 怎么会,这是 IMO 最琐碎和最重要的功能之一。
毕竟是 OSS:如果你想要它,提交 PR。
我目前的问题是:
--exclude {node_modules,.git,cache}
{}
运算符不起作用,我看不出如何排除不同的目录...
@monolithed :
--exclude node_modules --exclude .git --exclude cache
应该做你想做的
三年过去了,这还没有落实? 怎么会,这是 IMO 最琐碎和最重要的功能之一。
毕竟是 OSS:如果你想要它,提交 PR。
我已经提交了 PR: https ://github.com/palantir/tslint/issues/2409
@abenhamdine我应该要求审查的任何想法?
碰到了一个数百人想要的 3 年以上的问题,提交了一份有效的 PR,但半年没有采取任何行动。
谢谢你的碰撞。 请注意,链接的 PR #2409 是针对tslint.json
中的新配置选项的,它与原始问题( .tslintignore
文件)不太一样。 不过,这是朝着正确方向迈出的一步。 我留下了更多的 CR 评论。
+1
选项:
.tslintignore
文件写入要忽略的文件夹。exclude
与路径/文件夹列表。顺便说一句,功能是在[email protected]
发布的
正确的。 例子:
在您的项目中创建一个名为.vscode
的文件夹,并在settings.json
中创建一个文件。
{
"tslint.exclude": "**/app/models/**"
}
忽略 /app/models/ 中的所有文件。 随意改进表达。 :)
+1
+1
需要.tslintignore
哦,嘿,现在应该由linterOptions
支持。 根据https://palantir.github.io/tslint/usage/configuration/ :
linterOptions?: { exclude?: string[] }
:
exclude: string[]
:一个 glob 数组。 任何匹配这些 glob 的文件都不会被 linted。 所有排除模式都与它们在其中指定的配置文件相关。
这对每个人都足够好了吗? .tslintignore
还应该做什么?
/cc @am11 , @basarat
嗨@JoshuaKGoldberg ,这是一个很好的开始。 我认为这个线程上的很多人希望.tslintignore
文件除了功能之外,它还符合 git、npm、eslint 等已经设定的标准。喜欢这个标准的人,感觉很舒服有了它,并且有点期待它 - 例如,当我创建一个.tslintignore
文件时我发现了这个问题,假设它可以工作,并且在它没有工作时感到惊讶(正确或错误)。
唔。 我怀疑这应该如何工作有两个标准。 如果您在一个目录中同时拥有.tslintignore
和linterOptions.exclude
,那么该行为是如何工作的?
编辑:哦,TypeScript 也打破了.*ignore
的趋势tsconfig.json
。
eslint 和 stylelint 都支持--ignore-path
CLI 标志或ignorePath
JS 选项。 为什么tslint没有?
请添加对此的支持! :祈祷:
鉴于 #4534 和linterOptions.exclude
解决方法,现在这似乎超出了 TSLint 的范围。 推荐的方法是迁移到typescript-eslint ; 如果您需要从 TSLint linting 中排除一些 TypeScript 文件,请使用linterOptions.exclude
。 关闭此问题以进行内务处理。
如果linterOptions.exclude
中有一些阻止程序使迁移变得更加困难,请提交新问题以报告错误!
🤖哔哔! 👉 TSLint 已弃用👈,你应该切换到typescript-eslint ! 🤖
🔒 此问题已被锁定,以防止进一步不必要的讨论。 谢谢! 👋
最有用的评论
碰到了一个数百人想要的 3 年以上的问题,提交了一份有效的 PR,但半年没有采取任何行动。