Skip to content

Commit 3c41688

Browse files
committed
refactor(eslint-config-ali): exports
1 parent c47966f commit 3c41688

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+175
-531
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
import { base } from 'eslint-config-rive';
1+
import { base } from 'eslint-config-ali';
22

33
export default [...base, { ignores: ['fixtures'] }];

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
"@mdx-js/react": "^3.1.0",
4141
"@types/node": "^20.16.14",
4242
"commitlint-config-ali": "link:packages/commitlint-config-ali",
43-
"eslint": "^8.57.1",
43+
"eslint": "^9.0.0",
4444
"eslint-config-ali": "link:packages/eslint-config-ali",
4545
"eslint-config-prettier": "^9.1.0",
4646
"eslint-plugin-prettier": "^5.2.1",

packages/commitlint-config-ali/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"conventional-changelog-conventionalcommits": "^7.0.2"
4949
},
5050
"devDependencies": {
51-
"eslint": "^8.57.0",
51+
"eslint": "^9.0.0",
5252
"eslint-config-ali": "workspace:^",
5353
"eslint-config-prettier": "^9.1.0",
5454
"eslint-plugin-prettier": "^5.1.3",

packages/eslint-config-ali/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
dist
12
node_modules
23
print-config.json

packages/eslint-config-ali/CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
- **破坏性变更**: 移除了 `eslint` 8.x 支持,仅支持 `eslint` 9.x
66
- **破坏性变更**: 产物改为 ESM,移除了原有文件导出,只导出单一默认对象
7+
- **破坏性变更**: 移除 `rax`, `jsx-a11y`, `es5`, `node`, `egg` 配置
8+
- 支持 `.gitignore` (仅限项目根目录),不再需要 `.eslintignore` 文件
79

810
## 15.1.0 - 2024-07-27
911

packages/eslint-config-ali/egg.js

-3
This file was deleted.

packages/eslint-config-ali/es5.js

-10
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { base } from './dist';
2+
3+
export default [...base, { ignores: ['fixtures'] }];

packages/eslint-config-ali/index.js

-23
This file was deleted.

packages/eslint-config-ali/jsx-a11y.js

-3
This file was deleted.

packages/eslint-config-ali/node.js

-3
This file was deleted.

packages/eslint-config-ali/package.json

+15-10
Original file line numberDiff line numberDiff line change
@@ -64,24 +64,29 @@
6464
},
6565
"prettier": "prettier-config-rive",
6666
"dependencies": {
67-
"@babel/core": "^7.23.9",
68-
"@babel/eslint-parser": "^7.23.10",
69-
"@babel/preset-react": "^7.23.3",
67+
"@babel/core": "^7.26.0",
68+
"@babel/eslint-parser": "^7.25.9",
69+
"@babel/preset-env": "^7.26.0",
70+
"@babel/preset-react": "^7.26.3",
7071
"@eslint/compat": "^1.2.4",
7172
"@eslint/js": "^9.17.0",
73+
"@stylistic/eslint-plugin-js": "^2.12.1",
74+
"@stylistic/eslint-plugin-jsx": "^2.12.1",
75+
"@stylistic/eslint-plugin-ts": "^2.12.1",
7276
"eslint-config-egg": "^13.1.0",
73-
"eslint-plugin-import": "^2.29.1",
74-
"eslint-plugin-jsx-a11y": "^6.8.0",
75-
"eslint-plugin-react": "^7.33.2",
76-
"eslint-plugin-react-hooks": "^4.6.0",
77-
"eslint-plugin-vue": "^9.21.1",
77+
"eslint-plugin-import": "^2.31.0",
78+
"eslint-plugin-jsx-a11y": "^6.10.2",
79+
"eslint-plugin-react": "^7.37.3",
80+
"eslint-plugin-react-hooks": "^5.1.0",
81+
"eslint-plugin-vue": "^9.32.0",
82+
"globals": "^15.14.0",
7883
"typescript-eslint": "^8.19.0",
79-
"vue-eslint-parser": "^9.4.2"
84+
"vue-eslint-parser": "^9.4.3"
8085
},
8186
"devDependencies": {
8287
"@mdx-js/react": "^3.1.0",
8388
"@types/eslint": "^9.6.1",
84-
"@types/node": "^20.17.10",
89+
"@types/node": "^20.17.11",
8590
"@types/react": "^18.3.18",
8691
"@types/react-dom": "^18.3.5",
8792
"eslint": "^9.17.0",

packages/eslint-config-ali/rax.js

-8
This file was deleted.

packages/eslint-config-ali/react.js

-8
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import parser from '@babel/eslint-parser';
2+
import type { Linter } from 'eslint';
3+
import gitignore from './gitignore';
4+
5+
/** Use babel as eslint parser to support more styntax and features */
6+
const babelParser: Linter.Config = {
7+
name: 'ali/babel-parser',
8+
files: ['**/*.{cjs,js,jsx,mjs}'],
9+
languageOptions: {
10+
parser,
11+
parserOptions: {
12+
requireConfigFile: false,
13+
ecmaVersion: 'latest',
14+
sourceType: 'module',
15+
ecmaFeatures: {
16+
globalReturn: false,
17+
impliedStrict: true,
18+
jsx: true,
19+
},
20+
babelOptions: {
21+
babelrc: false,
22+
configFile: false,
23+
presets: ['@babel/preset-env', '@babel/preset-react'],
24+
},
25+
},
26+
},
27+
...gitignore,
28+
};
29+
30+
export default babelParser;

packages/eslint-config-ali/src/configs/es6.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import type { Linter } from 'eslint';
22

33
/** ES6 */
44
const es6: Linter.Config = {
5+
name: 'ali/es6',
56
rules: {
67
// 箭头函数-函数体风格
78
// @reason 允许灵活使用

packages/eslint-config-ali/src/configs/gitignore.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ import { Linter } from 'eslint';
33
import path from 'node:path';
44

55
/** Include ignore patterns from `.gitignore` at project root */
6-
const gitignore: Linter.Config = {
7-
name: 'ali/gitignore',
8-
...includeIgnoreFile(path.join(process.cwd(), '.gitignore')),
9-
};
6+
const gitignore: Linter.Config = includeIgnoreFile(path.join(process.cwd(), '.gitignore'));
107

118
export default gitignore;

packages/eslint-config-ali/src/configs/project-files.ts

-6
This file was deleted.

packages/eslint-config-ali/src/rules/react.js packages/eslint-config-ali/src/configs/react.ts

+11-20
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
/**
2-
* 本文件的规则由 eslint-plugin-react 和 eslint-plugin-react-hooks 提供
3-
* @link https://github.com/yannickcr/eslint-plugin-react
4-
* @link https://www.npmjs.com/package/eslint-plugin-react-hooks
5-
*/
6-
7-
module.exports = {
8-
plugins: ['react', 'react-hooks'],
1+
import reactHooks from 'eslint-plugin-react-hooks';
2+
import globals from 'globals';
3+
import defineConfig from '../utils/defineConfig';
4+
5+
export default defineConfig({
6+
name: 'ali/react',
7+
plugins: {
8+
'react-hooks': reactHooks,
9+
},
910
rules: {
1011
// https://github.com/alibaba/f2e-spec/issues/95
1112
// 防止 React 组件定义中缺少 displayName
@@ -340,15 +341,5 @@ module.exports = {
340341
// @link https://reactjs.org/docs/hooks-rules.html
341342
'react-hooks/exhaustive-deps': 'warn',
342343
},
343-
settings: {
344-
'import/resolver': {
345-
node: {
346-
extensions: ['.js', '.jsx', '.json'],
347-
},
348-
},
349-
react: {
350-
pragma: 'React',
351-
version: 'detect',
352-
},
353-
},
354-
};
344+
languageOptions: { globals: globals.browser },
345+
});

packages/eslint-config-ali/src/configs/style.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import type { Linter } from 'eslint';
22

33
const style: Linter.Config = {
4+
name: 'ali/style',
45
rules: {
56
// 强制在数组开括号后和闭括号前换行
67
'array-bracket-newline': 'off',

0 commit comments

Comments
 (0)