linter,禁止使用jquery

Posted

技术标签:

【中文标题】linter,禁止使用jquery【英文标题】:Linters, forbid the use of jquery 【发布时间】:2016-02-13 14:54:58 【问题描述】:

我们正在开发一个带有 webviews 的安卓应用。我们将为这个 webviews 提供第三方开发人员,但我们希望禁止他们使用某些库来强制使用我们自己的。在这种情况下,我们希望禁止使用 jQuery,以及其他禁止事项。理想情况下,此禁令应集成到 linter 工具中。我对 linter 了解不多,所以如果你能指导我一点关于使用什么 linter 工具或任何其他类型的帮助,将会非常有帮助。

我不知道最好的方法,也许正在寻找一个正则表达式来找到 src="*jquery*" 并将这个搜索集成到一个 jshint 补丁中?

谢谢!

【问题讨论】:

【参考方案1】:

jQuery 在其源代码中定义了两个全局变量。您可以使用jsHint rule undef 来禁止在代码中使用未声明的变量。这意味着如果他们在代码中使用 $ 或 jQuery,那么 jsHint linting 将失败。为了让您自己能够使用全局变量,您需要使用globals rule 为自己提供允许的全局变量的白名单。

【讨论】:

当然,除非他们在代码中使用了 /* global $, jQuery */ linter 覆盖注释,这是无法从 linter 配置中阻止的。 @LJHarb 是的,你是绝对正确的。但是,您所拥有的是第三方开发人员故意违反您制定的规则。我并不是说这不会发生,但是如果我聘请了第三方开发人员并且我明确对他们说,不要使用 jQuery,我什至制定了规则来阻止它,然后他们仍然使用 jQuery。那么这将是他们的一个严重的判断错误。他们不仅会失去我未来的生意,而且肯定会给他们故意违反合同条款带来麻烦,我有证据! @ZacBraddy 我爱你。很明显他们可以通过禁令,但我们会在最后监督代码,所以最好尽快通知。使用我们自己的库是因为 jquery 非常专注于跨浏览器,但对于 android webview,我们不需要它。还有很多人使用 jquery 来使用他们的选择器,但实际上他们已经在原生 javascript 中了。

以上是关于linter,禁止使用jquery的主要内容,如果未能解决你的问题,请参考以下文章

VSCode Linter ES6 ES7 Babel linter

如何在 Jupyter Notebooks 中使用 Pylint 或其他 linter?

使用 TypeScript 和 Maquette JSX 但 linter 说 'jsx' 未使用

如何设置在各种 IDE 中使用的默认 linter

atom 使用 linter 检查语法时,阻止底部弹窗弹出

您可以将 grunt.js 中的 linter 更改为 jslint 吗?