eslint plugin angular

2025-12-07 0 944

eslint plugin angular

Angular项目的Eslint规则,并检查最佳实践,约定或潜在错误。

概括

该存储库将访问ESLINT工具的新规则。仅当您正在开发AngularJS应用程序时,才能使用它。

自0.0.4发布以来,约翰·帕帕(John Papa)指南中定义的一些规则已实施。在下面的描述中,您将拥有指向指南相应部分的链接,以便获得更多信息。

内容

  • 共享配置的使用
  • 无共享配置的使用
  • 规则
  • 需要您的帮助
  • 如何创建新规则
  • 默认的ESLINT配置文件
  • 谁使用?
  • 团队

可共享配置的使用

  1. eslint作为DEV依赖性安装:

    npm install --save-dev eslint
  2. eslint-plugin-angular安装为DEV依赖性:

    npm install --save-dev eslint-plugin-angular
  3. 通过将其添加到您的.eslintrc :使用可共享配置:

     extends : plugin:angular/johnpapa 

无共享配置的使用

  1. eslint作为DEV依赖性安装:

    npm install --save-dev eslint
  2. eslint-plugin-angular安装为DEV依赖性:

    npm install --save-dev eslint-plugin-angular
  3. 通过将其添加到您的.eslintrc中来启用插件:

     plugins :
      - angular
  4. 您还可以在.eslintrc中配置这些规则。本插件中定义的所有规则都必须由“ Angular/”前缀

     plugins :
      - angular
    rules :
      - angular/controller_name : 0 

规则

Eslint-Plugin-angular中的规则分为几类,以帮助您更好地理解其价值。

可能的错误

以下规则检测可能导致错误的模式。

  • 避免使用 – 符合型 – 命名方法在示波器对象上定义时避免错误
  • 模块 – getter-禁止参考变量的引用模块,需要使用getter语法而代替angular.module(\'myModule\') (y022)
  • 模块设定 – 禁止将模块分配给变量(链接到模块 – 盖特(y021)
  • 无私人呼叫 – 不允许使用$$的内部角度属性

最佳实践

这些是旨在防止您犯错误的规则。他们要么开出更好的做事方式,要么帮助您避免脚步。

  • 组件限制 – 限制每个文件的角组件数(y001)
  • 控制器-As-Route-需要在路线或状态中使用控制器(Y031)
  • 控制器-AS-VM-要求并指定控制器中的捕获this (Y032)
  • 控制器-AS-禁止控制器中$scope的作业(Y031)
  • 延期 – 使用$q(function(resolve, reject){})而不是$q.deferred
  • di -unused-禁止未使用的DI参数
  • 指令限制 – 禁止其他任何指令限制,而不是“ A”或“ E”(Y074)
  • 空控制器 – 禁止空控制器
  • 无控制器 – 禁止使用控制器(根据组件的第一模式)
  • 无内线网板 – 禁止使用内联模板的使用
  • 无逻辑 – 保持运行功能清洁和简单(Y171)
  • NO -Services-不允许其他角组件的指定服务(用于控制器,过滤器和指令的$http
  • 在观察中 – 需要$on$watch deregistration回调,保存在变量中
  • 优先组件 –

弃用的角特征

这些规则阻止您使用弃用的角度。

  • No -Cookiestore-使用$cookies代替$cookieStore
  • 无裁定 – 禁止弃用的指令更换财产
  • no-http-callback-禁止$http方法success()error()

命名

这些规则可帮助您指定几份命名约定。

  • 组件名称 – 要求并指定所有组件名称的前缀
  • 常量名称 – 需要并指定所有常数名称的前缀(Y125)
  • 控制器名称 – 要求并指定所有控制器名称的前缀(Y123,Y124)
  • 指令名 – 要求并指定所有指令名称的前缀(Y073,Y126)
  • 工厂名称 – 需要并指定所有工厂名称的前缀(Y125)
  • 文件名 – 要求并指定一致的组件名称模式(Y120,Y121)
  • filter -name-要求并指定所有过滤名称的前缀
  • 模块名称 – 需要并指定所有模块名称的前缀(Y127)
  • 提供商名称 – 要求并指定所有提供商名称的前缀(Y125)
  • 服务名称 – 需要并指定所有服务名称的前缀(Y125)
  • Value -name-要求并指定所有值名的前缀(Y125)

会议

Angular通常提供多种方式来实现某物。这些规则可帮助您为项目定义惯例。

  • di -order-要求按字母顺序排序DI参数
  • di-需要一致的di语法
  • 愚蠢的喷射 – 联合inject功能应仅由注入值的分配组成以描述块变量
  • 函数类型 – 需要并指定组件(\’nature\’或\’匿名\’)的一致函数样式(Y024)(Y024)
  • 模块依赖性订单 – 需要一个一致的模块依赖性顺序
  • 无服务方法 – 使用factory()而不是service() (y040)
  • 一个依赖性按线 – 要求所有DI参数都位于自己的行中
  • 休息服务 – 禁止不同的休息服务,并指定“ $ http”,“ $ resource”,“ Restangular”之一
  • 守望者执行 – 要求并指定一致的使用$scope.digest()$scope.apply()

角包装纸

这些规则可以帮助您强制执行角包装器的使用。

  • Angularelemt-使用angular.element代替$jQuery
  • 定义定义 – 使用angular.isDefined and angular.isUndefined而不是其他未定义检查
  • 文档服务 – 使用$document代替document (Y180)
  • foreach-使用angular.forEach代替本地Array.prototype.forEach
  • 间隔服务 – 使用$interval而不是setInterval (y181)
  • json -intunctions-使用angular.fromJson和“ angular.tojson”,而不是JSON.parse and JSON.stringify
  • 日志 – 使用$log服务代替console方法
  • 无角形 – 需要直接使用angular.mock方法
  • 无jQuery-angularelemt-禁止用jQuery$包裹angular.element
  • 超时服务 – 使用$timeout而不是setTimeout (y181)
  • typecheck -array-使用angular.isArray代替typeof比较
  • typecheck -date-使用angular.isDate而不是typeof比较
  • typecheck功能 – 使用angular.isFunction而不是typeof的比较
  • typecheck -number-使用angular.isNumber代替比较typeof
  • typecheck -object-使用angular.isObject而不是typeof比较
  • typecheck -string-使用angular.isString代替typeof比较
  • 窗口服务 – 使用$window代替window (Y180)

拼错

这些规则可帮助您避免拼写错误。

  • ON DESTROY-检查是否有常见的拼写错误$(“销毁”,…)。

需要您的帮助

这是一个开源项目。任何帮助都将非常有用。你可以 :

  • 创建问题
  • 发送拉的请求
  • 写文档
  • 添加新功能
  • 添加新规则
  • 提高质量
  • 回复问题

所有发展都发生在development分支。这意味着应向development部门提出所有拉的请求。

如果是时候发布了, @gillespie59会在package.json中碰到版本,创建一个git标签,然后将development分支合并master 。 @gillespie59然后将新版本发布到NPM注册表。

如何创建新规则

我们感谢贡献,以下笔记将在打开拉动请求之前为您提供帮助。

检查问题

看看现有问题。有用的信息可能存在类似的问题。

阅读文档

创建新规则有一些有用的参考。特定有用的是:

  • 上下文对象 – 这是添加或修改规则所需的最基本理解。
  • 选项模式 – 这是验证配置选项的首选方法。
  • 范围 – 这是context.getScope()返回的范围对象。

您必须创建的文件

  • rules/<your-rule>.js

    • 带有新规则的JavaScript文件
    • filename <your-rule>正是Eslint Configs angular/<your-rule>中的使用名称
    • 看看angularRule包装器和utils (在rules/utils/ )中 – 它们可能使您更容易为您提供
    • 添加文档注释以生成使用gulp docs任务的降价文档
  • test/<your-rule>.js

    • 编写一些测试并通过gulp test执行
    • 查看覆盖范围报告coverage/lcov-report/index.html
  • examples/<your-rule>.js
    • 为文档添加一些示例
    • 运行gulp docs任务以测试示例并更新Markdown文档
  • docs/<your-rule>.md

    • gulp docs任务生成

您必须触摸的文件

  • index.js

    • 添加您的规则rulesConfiguration.addRule(\'<your-rule>\', [0, {someConfig: \'someValue\'}])

在打开公关之前

  • 检查gulp任务是否有效
  • 提交README.mddocs/<your-rule>.md的更改
  • development分支开放master

针对角1或2的规则

我们可以使用ESLINT配置文件中定义的属性,以了解使用哪个版本:Angular 1或Angular 2。基于此属性,您可以为每个版本创建规则。

 plugins :
  - angular

rules :
    angular/controller-name :
      - 2
      - \' /[A-Z].*Controller$/ \'

globals :
    angular : true

settings :
    angular : 2

根据您的规则,您可以通过context对象访问此属性:

 //If Angular 2 is used, we disabled the rule
if ( context . settings . angular === 2 ) {
    return { } ;
}

return {

    \'CallExpression\' : function ( node ) {
    }
} ; 

默认的ESLINT配置文件

这是ESLINT插件中定义的规则的基本配置,以便与@johnpapa提供的指南兼容:

 rules :
    no-use-before-define :
      - 0 

谁使用?

  • Argo
  • 发电机gillespie59角
  • 发电机-NG-POLY
  • 杂物
  • 发电机沟渠角

团队

伊曼纽尔·德米(Emmanuel Demey) 蒂尔曼·波特福 Remco Haszing

下载源码

通过命令行克隆项目:

git clone https://github.com/EmmanuelDemey/eslint-plugin-angular.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 开发教程 eslint plugin angular https://www.zuozi.net/31839.html

cronos
上一篇: cronos
erl_fastcgi
下一篇: erl_fastcgi
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务