67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| const globals = require('globals');
 | ||
| 
 | ||
| /** @type {(import('eslint').Linter.Config[])} */
 | ||
| module.exports = [
 | ||
|   ...require('./eslint.config.base.js'),
 | ||
|   {
 | ||
|     plugins: {
 | ||
|       // TODO: 需要根据不同类型配置plugin?需要阅读源码确认是否影响性能
 | ||
|       'react-hooks': require('eslint-plugin-react-hooks'),
 | ||
|       react: require('eslint-plugin-react'),
 | ||
|       risxss: require('eslint-plugin-risxss'),
 | ||
|     },
 | ||
|     languageOptions: {
 | ||
|       globals: {
 | ||
|         ...globals.node,
 | ||
|         ...globals.browser,
 | ||
|         JSX: true,
 | ||
|         React: true,
 | ||
|       },
 | ||
|     },
 | ||
|     settings: {
 | ||
|       // for eslint-plugin-react
 | ||
|       react: {
 | ||
|         pragma: 'React',
 | ||
|         version: '18.2',
 | ||
|       },
 | ||
|     },
 | ||
|     rules: {
 | ||
|       'react-hooks/rules-of-hooks': 'error',
 | ||
|       'react-hooks/exhaustive-deps': 'warn',
 | ||
|       'risxss/catch-potential-xss-react': 'error',
 | ||
|       'no-restricted-imports': [
 | ||
|         'error',
 | ||
|         {
 | ||
|           patterns: [
 | ||
|             {
 | ||
|               group: ['@douyinfe/semi-ui', '@douyinfe/semi-ui/*'],
 | ||
|               message:
 | ||
|                 '请勿直接使用@douyinfe/semi-ui, 请使用 @coze-arch/bot-semi',
 | ||
|             },
 | ||
|             {
 | ||
|               group: ['@douyinfe/semi-ui/lib/es/*'],
 | ||
|               message:
 | ||
|                 '如果你的代码为 import { foo } from "@douyinfe/semi-ui/lib/es/bar", 可以尝试替换为 import { foo } from "@coze-arch/bot-semi/Bar"',
 | ||
|             },
 | ||
|             {
 | ||
|               group: ['@edenx/runtime/intl'],
 | ||
|               message:
 | ||
|                 '请勿直接使用@edenx/runtime/intl, 请使用 @coze-arch/i18n',
 | ||
|             },
 | ||
|             {
 | ||
|               group: ['@edenx/runtime/router'],
 | ||
|               message:
 | ||
|                 '请勿直接使用@edenx/runtime/router, 请使用 react-router-dom',
 | ||
|             },
 | ||
|             {
 | ||
|               group: ['@edenx/runtime/styled'],
 | ||
|               message:
 | ||
|                 '请勿直接使用@edenx/runtime/styled, 请使用 styled-components',
 | ||
|             },
 | ||
|           ],
 | ||
|         },
 | ||
|       ],
 | ||
|     },
 | ||
|   },
 | ||
| ];
 |