81 lines
2.5 KiB
JavaScript
81 lines
2.5 KiB
JavaScript
|
|
import { FlatCompat } from '@eslint/eslintrc';
|
|||
|
|
import { fileURLToPath } from 'node:url';
|
|||
|
|
import path from 'node:path';
|
|||
|
|
|
|||
|
|
const __filename = fileURLToPath(import.meta.url);
|
|||
|
|
const __dirname = path.dirname(__filename);
|
|||
|
|
|
|||
|
|
const compat = new FlatCompat({
|
|||
|
|
baseDirectory: __dirname,
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
export default [
|
|||
|
|
...compat.extends('taro/react'),
|
|||
|
|
{
|
|||
|
|
rules: {
|
|||
|
|
'react/jsx-uses-react': 'off',
|
|||
|
|
'react/react-in-jsx-scope': 'off',
|
|||
|
|
'jsx-quotes': ['error', 'prefer-double'],
|
|||
|
|
'react-hooks/exhaustive-deps': 'off',
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
files: ['src/**/*.{js,jsx,ts,tsx}'],
|
|||
|
|
ignores: ['src/network.ts'],
|
|||
|
|
rules: {
|
|||
|
|
'no-restricted-syntax': [
|
|||
|
|
'error',
|
|||
|
|
{
|
|||
|
|
selector:
|
|||
|
|
"MemberExpression[object.name='process'][property.name='env']",
|
|||
|
|
message:
|
|||
|
|
'请勿在 src 目录下直接使用 process.env\n如需获取 URL 请求前缀,请使用已经注入全局的 PROJECT_DOMAIN',
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
selector:
|
|||
|
|
":matches(ExportNamedDeclaration, ExportDefaultDeclaration) :matches([id.name='Network'], [declaration.id.name='Network'])",
|
|||
|
|
message:
|
|||
|
|
"禁止自行定义 Network,项目已提供 src/network.ts,请直接使用: import { Network } from '@/network'",
|
|||
|
|
},
|
|||
|
|
],
|
|||
|
|
'no-restricted-properties': [
|
|||
|
|
'error',
|
|||
|
|
{
|
|||
|
|
object: 'Taro',
|
|||
|
|
property: 'request',
|
|||
|
|
message:
|
|||
|
|
"请使用 Network.request 替代 Taro.request,导入方式: import { Network } from '@/network'",
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
object: 'Taro',
|
|||
|
|
property: 'uploadFile',
|
|||
|
|
message:
|
|||
|
|
"请使用 Network.uploadFile 替代 Taro.uploadFile,导入方式: import { Network } from '@/network'",
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
object: 'Taro',
|
|||
|
|
property: 'downloadFile',
|
|||
|
|
message:
|
|||
|
|
"请使用 Network.downloadFile 替代 Taro.downloadFile,导入方式: import { Network } from '@/network'",
|
|||
|
|
},
|
|||
|
|
],
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
files: ['src/pages/index/index.tsx'],
|
|||
|
|
rules: {
|
|||
|
|
'no-restricted-syntax': [
|
|||
|
|
'error',
|
|||
|
|
{
|
|||
|
|
selector: 'JSXText[value=/应用开发中/]',
|
|||
|
|
message:
|
|||
|
|
'检测到首页 (src/pages/index/index) 仍为默认占位页面,这会导致用户无法进入新增页面,请根据用户需求开发实际的首页功能和界面。如果已经开发了新的首页,也需要删除旧首页,并更新 src/app.config.ts 文件',
|
|||
|
|
},
|
|||
|
|
],
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
ignores: ['dist/**', 'dist-*/**', 'node_modules/**'],
|
|||
|
|
},
|
|||
|
|
];
|