V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
xcatliu
V2EX  ›  分享创造

开源项目 eslint-config-alloy 需要你的帮助!

  •  
  •   xcatliu ·
    xcatliu · 2019-03-25 00:55:08 +08:00 · 3123 次点击
    这是一个创建于 2071 天前的主题,其中的信息可能已经有所发展或是发生改变。

    AlloyTeam ESLint 规则不仅是一套科学的 ESLint 配置规范,而且也是你配置个性化 ESLint 规则的最佳参考。

    经历一年多的发展,eslint-config-alloy 已收获大量的粉丝,首先在此感谢各位的支持!

    发布新版本

    自从ESLint 宣布由官方支持 TypeScript之后,我们收到了很多反馈希望迁移到 typescript-eslint

    紧跟社区步伐是很重要的,趁这次机会,我们决定重构一遍 eslint-config-alloy。 有了之前的一些经验教训,我们发现要做成一个受欢迎的 ESLint 规范,重点在于管理好三角关系[测试]-[配置]-[示例],需要将这三者联系起来,统一维护。其次 ESLint 的配置项太多,相关社区依赖更新也非常快,需要借助社区的力量一起维护。

    所以,这次我们的目标是将 eslint-config-alloy 打造为一个高度自动化,热情开源的项目。

    如今已完成了基础功能的开发和前一个版本的规则的迁移,发布了 v2.0.0-alpha.2 版本。

    无情的推动自动化

    那么这次的更新有哪些变化呢?

    1. 所有 ESLint 配置均在 test 目录下
    2. 每一项配置存放在对应的目录下,如 test/react/jsx-key/.eslintrc.js 描述了规则 react/jsx-key
    3. 如果配置开启了,则需要有对应的示例,包括 bad.js 和 good.js
    4. 由于配置和示例在一个目录下,故编辑器中可以直接看到错误信息
    5. 由 scripts/build.ts 脚本将 test 目录下分散的配置生成整体的配置
    6. 运行测试脚本 test/index.ts 会检查每个示例是否按照要求报错

    除此之外,项目自身也加上了一系列校验工具,包括:

    • eslint 检查构建脚本错误
    • prettier 自动格式化代码
    • eclint 格式化 test 中的代码
    • husky 运行 githook
    • travis-ci 在 pr 时执行检查
    • Greenkeeper 保证依赖及时更新

    有了自动化工具的加持,协同开发变得更加容易了。如果你也感兴趣的话,如果你的项目中也使用了此规则的话,不妨一起来建设 eslint-config-alloy 吧!

    TODOs

    如果对此项目感兴趣,欢迎从完成 test 下的示例开始入手,参与贡献!

    • [ ] 完成所有的 test/index 下的示例
    • [ ] 完成所有的 test/react 下的示例
    • [x] 完成所有的 test/typescript 下的示例
    • [x] 移植 bak/vue 的规则,完成 eslint-config-alloy/vue 的配置
    • [x] 实现 TypeScript React 配置
    • [ ] 实现 TypeScript Vue 配置
    • [ ] 完成新版网站建设
    5 条回复    2020-05-12 19:57:53 +08:00
    creanme
        1
    creanme  
       2019-03-25 07:47:47 +08:00 via Android
    帮顶
    demo
        2
    demo  
       2019-03-25 11:10:51 +08:00
    一时 standard 一时爽,一直 standard 一直爽
    ddup
        3
    ddup  
       2019-03-25 23:11:45 +08:00 via Android
    帮顶
    Arrowing
        4
    Arrowing  
       2020-05-12 17:45:13 +08:00
    我用了楼主推荐的 alloy eslint 配置,项目是 ts + vue 构建的。( extends: ['alloy', 'alloy/typescript', 'alloy/vue'])
    但是 eslint 对 tsconfig.json 中配置的 strict: true 不生效,别的标准 rules 是生效的呢,请问这是正常的吗?
    xcatliu
        5
    xcatliu  
    OP
       2020-05-12 19:57:53 +08:00   ❤️ 1
    @Arrowing 目前对 vue 的支持不好,准备等 vue3.0 出来后再支持
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2945 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:44 · PVG 20:44 · LAX 04:44 · JFK 07:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.