• Stars
    star
    127
  • Rank 282,790 (Top 6 %)
  • Language
    JavaScript
  • Created over 8 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A smart way to eslint and stylelint for front end

youzan

A smart way to eslint stylelint and git hooks for front end

npm version downloads PRs Welcome

NPM

一、什么是Felint

felint 是一个同步前端代码校验规则的工具。

felint 为你的项目做以下两件事:

  1. 初始化 eslint/stylelint 配置文件,无论是 react 项目、vue 项目、es5 还是 es6 都提供了针对性的配置方案
  2. 安装 eslint/stylelint 及其依赖到当前项目的 node_modules 里

如果你需要利用git的钩子来校验代码,推荐使用:huskylint-staged

二、安装 felint

npm install -g felint

三、快速开始

第一步

在项目的根目录,执行

felint init

felint 初始化完成后你的项目中将会产生如下文件:

|_.felintrc        // 第一次被执行 felint init 后会在项目根目录生成这个文件,具体见下面 .felintrc 章节
|_.eslintrc.json   // eslint 规则文件,用于检测js代码(使用的是官方推荐的配置)
|_.eslintignore    // eslint ignore配置文件
|_.stylelintrc.js  // stylelint 规则文件,用于检测css代码(使用的是官方推荐的配置)
|_.stylelintignore // stylelint ignore配置文件

第二步

将这些 felint 生成的文件提交到 git 仓库。

第三步(高阶用法)

默认情况下,felint 是同步 ES6 方案的校验规则,当你需要在项目中使用VueReact规则时,我们可以在初始化时指定一个规则方案:

felint init -p vue

此时,felint 将会在你的项目中初始化适用于 Vue 的校验规则。

如果你需要在一个项目的不同目录使用不同的代码规范时,可以修改 .felintrc 文件自定义校验规则:

{
    "plan": {
        "./app": "node",
        "./client": "vue"
    }
}

此时在 ./app 目录生成 node 的校验规则,在 ./client 目录会生成 vue 的校验规则。

如果你不想使用默认的felint-config规则来校验,你可以fork出来修改为自己的 felint-config(修改方法参考 felint-config 的 readme ),然后将 .felintrc 文件的 gitHookUrl 字段配置为你自己的仓库地址即可。

{
    "gitHookUrl": "https://github.com/youzan/felint-config.git"
}

当你更新了 felint-config 中的规则依赖,你需要在项目的根目录执行以下命令同步最新的依赖:

felint dep

当你更新了 felint-config 中的校验规则,你需要在项目的根目录执行以下命令同步最新的规则文件:

felint rules

四、名词解释

  • felint-config:里面包含了代码校验规则的配置信息,默认为:felint-config
  • .felintrc:类似于 .babelrc文件,放在项目根目录用于配置 felint-config 的git仓库地址,和项目的代码规范方案。
  • eslintJavaScript 代码校验工具,详细文档点这里
  • stylelintCSS 代码校验工具,详细文档点这里

五、felint命令详解

1. felint init

felint init -p planname -f

-p planname:
用于指定初始化规则方案,如果不指定则会使用默认的规则
-f:
是否强制覆盖已有的规则

执行 felint init 命令后,felint会读取 .felintrcfelint-config 配置的校验规则仓库地址(如未指定则会使用默认地址https://github.com/youzan/felint-config),当配置文件下载完成后,felint 将自动执行配置文件内部的初始化脚本文件,并生成最终规则文件。

关于规则方案声明请参见felint-config介绍

2. felint dep

该命令会下载 eslintstylelint 所需要的依赖,并写入到 package.json 中。

felint dep

3. felint rules

该命令会根据 .felintrc 配置文件同步最新的校验规则文件。

felint rules -f

-f:
是否强制覆盖已有的规则

4. felint config-url

felint config-url

输出 felint config 配置的仓库地址。

六、.felintrc文件

.felintrc用于配置felint-config的git仓库地址、对默认规则进行一定程度的自定义覆盖以及记录该项目所使用的代码规则方案。

e.g.

{
    gitHookUrl     // 用于指定使用的`felint-config`仓库地址
    plan          // 用于指定当前项目所使用的规则方案,比如`es5/es6/vue/react`等
    disturl       // 用于指定安装依赖时的`disturl`
    registryUrl   // 用于指定安装依赖时的`registry`
    useYarn       // 是否使用yarn来安装依赖,默认为`true`
}

七、开源协议

本项目基于 MIT协议,请自由地享受和参与开源。

More Repositories

1

vant

A lightweight, customizable Vue UI library for mobile web apps.
TypeScript
23,055
star
2

vant-weapp

轻量、可靠的小程序 UI 组件库
JavaScript
17,673
star
3

zent

A collection of essential UI components written with React.
TypeScript
2,246
star
4

zan-proxy

An extensible proxy for PC/Mobile/APP developer
TypeScript
1,814
star
5

vant-demo

Collection of vant demos.
Vue
1,560
star
6

zanphp

PHP开发面向C10K+的高并发SOA服务 和RPC服务首选框架
PHP
1,437
star
7

nsq

A realtime distributed messaging platform (forked from https://github.com/nsqio/nsq)
Go
633
star
8

zanui-weapp

本仓库已不再维护,请移步 https://github.com/youzan/vant-weapp
JavaScript
535
star
9

bugCatcher

方便产品、开发、测试三方协同管理、测试、监控项目进度和质量,以持续交付。
Java
491
star
10

zan

高效稳定、安全易用、线上实时验证的全异步高性能网络库,通过PHP扩展方式使用。
C
459
star
11

php-co-koa

PHP异步编程: 手把手教你实现co与Koa
459
star
12

Bifrost

A delightful library for app business modular architecture.
Objective-C
398
star
13

YZSpamFilter

有赞垃圾内容过滤工具
Python
283
star
14

TitanRecyclerView

A handy RecyclerView can deal with all headers, footers, and loading shit.
Java
249
star
15

tiny-loader.js

A small loader that load CSS/JS in best way for page performance
JavaScript
204
star
16

raven-weapp

Sentry SDK for WeApp
JavaScript
159
star
17

show-me-the-code

TypeScript
151
star
18

gatling-dubbo

A gatling plugin for running load tests on Apache Dubbo(https://github.com/apache/incubator-dubbo) and other java ecosystem.
Scala
149
star
19

weapp-plugin-demo

有赞微商城所有小程序插件的演示demo
JavaScript
113
star
20

YouzanMobileSDK-Android

有赞云AppSDK是为移动端应用打造的电商交易系统,通过一个SDK便可以在APP内集成有赞提供的整个交易服务。
Kotlin
113
star
21

SigmaTableViewModel

A simple view model for building organized and scalable TableViews.
Objective-C
106
star
22

httpfetch

对http请求进行封装的,通过对接口函数进行代理,实现优雅的http调用
Java
100
star
23

zanphp-doc

Zan PHP Framework doc
Python
99
star
24

zan_high_performance_mysql

mysql performance optimize book
98
star
25

beeyz

beeyz
Java
86
star
26

sprite-loader

A image sprite loader for webpack.
JavaScript
83
star
27

fast-uglifyjs-plugin

hight performance uglify plugin for webpack
JavaScript
71
star
28

systemtap-toolkit

YouZan systemtap toolkit to online analyze on production
Perl
69
star
29

ngx_http_ipip_module

nginx http module for ipip.net
C
65
star
30

YouzanMobileSDK-iOS

有赞云AppSDK是为移动端应用打造的电商交易系统,通过一个SDK便可以在APP内集成有赞提供的整个交易服务。
Objective-C
62
star
31

zanhttpdemo

HTTP demo for Zan PHP Framework
PHP
57
star
32

go-nsq

Go
56
star
33

open-sdk-php

有赞云网关 SDK for PHP
PHP
54
star
34

php-nsq-client

php nsq client
PHP
38
star
35

nsqJavaSDK

nsq client for java
Java
37
star
36

vue-cli-template-vant

注意:本仓库适用于 vue-cli 2.0, vue-cli 3.0 请参考:https://youzan.github.io/vant/#/zh-CN/quickstart
JavaScript
35
star
37

youzan-sdk

Yet Another Node.js SDK for http://open.youzan.com
JavaScript
33
star
38

zent-kit

[DEPRACATED] React 组件库开发脚手架
JavaScript
28
star
39

vant-doc

本仓库已废弃,请使用 https://github.com/youzan/vant/tree/dev/packages/vant-cli
Vue
27
star
40

zan-installer

Youzan Zan Php Installer
PHP
26
star
41

zan-tool

Zan Node Web 框架配套开发工具
JavaScript
23
star
42

yz-cloud-boot

有赞云有容器应用PHP框架
PHP
21
star
43

open-sdk-node

有赞云网关 SDK for Node
JavaScript
20
star
44

vant-icons

本仓库已迁移至 https://github.com/youzan/vant/tree/dev/packages/vant-icons
CSS
18
star
45

zan-thrift

zan thrift代码生成工具
C++
17
star
46

create-utils

Build your own js library by running one command
JavaScript
15
star
47

ngx_http_html_sanitize_module

It's a nginx http module to sanitize HTML5 with whitelisted elements, whitelisted attributes and whitelisted CSS property
HTML
15
star
48

zanphp.io-server

Proudly build with Zan PHP Framework
CSS
13
star
49

open-sdk-Csharp

有赞云网关Api调用C# SDK
C#
12
star
50

spark-nsq-consumer

spark-nsq-consumer
Scala
10
star
51

zent-seed

[DEPRECATED] React 组件库项目模版,请配合 https://github.com/youzan/zent-kit 使用
JavaScript
8
star
52

felint-config

Shell
6
star
53

yz_aerospike

youzan aerospike client branch
C
6
star
54

zan-doc

PHP
5
star
55

zanphp.io

Zan PHP Framework official site
CSS
5
star
56

zan-utils

TypeScript
4
star
57

zantcpdemo

PHP
4
star
58

zanwebsocketdemo

PHP
4
star
59

extension-point-api

有赞云扩展点PHP桩代码
PHP
4
star
60

zanhttp-boilerplate

Youzan ZanPhp HTTP project Boilerplate
PHP
4
star
61

zent-beta

Zent beta 版文档网站
HTML
3
star
62

YouzanHarmonySDK

Batchfile
2
star
63

cloud-connector-doc

云连接器文档
Shell
2
star
64

eslint-plugin-youzan

Eslint plugin for youzan
JavaScript
2
star
65

yz-cloud-boot-demo-app

有赞云有容器App定制PHP测试Demo工程
JavaScript
2
star
66

youzan.github.io

HTML
1
star
67

vue-cli-template-yzae

A vue-cli template for youzan app-engine developer, forked from vue-cli-template-vant.
JavaScript
1
star
68

zantcp-boilerplate

Youzan ZanPHP TCP project Boilerplate
PHP
1
star
69

zan-snippets

Code snippets for various editors at Youzan
Shell
1
star
70

zan-user-guide

Python
1
star
71

zanwebsocket-boilerplate

PHP
1
star