4.6 KiB
4.6 KiB
created, updated, tags
| created | updated | tags | |
|---|---|---|---|
| 2025-02-24 09:46 | 2025-07-04 07:24 |
|
npm uninstall @typescript-eslint/eslint-plugin eslint-plugin-unused-imports eslint-plugin-vue eslint eslint-plugin-tailwindcss eslint-plugin-vue eslint-plugin-no-relative-import-paths eslint-config-prettier prettier prettier-plugin-organize-imports prettier-plugin-tailwindcss typescript-eslint @vue/eslint-config-typescript @eslint/js
npm install -D eslint @typescript-eslint/eslint-plugin eslint-plugin-no-relative-import-paths eslint-plugin-unused-imports eslint-plugin-tailwindcss eslint-plugin-vue globals @eslint/js @eslint/eslintrc @vue/eslint-config-typescript @eslint/js
npx @eslint/migrate-config .eslintrc.json
import vue from "eslint-plugin-vue";
import unusedImports from "eslint-plugin-unused-imports";
import noRelativeImportPaths from 'eslint-plugin-no-relative-import-paths';
import {defineConfigWithVueTs, vueTsConfigs} from '@vue/eslint-config-typescript';
import tailwind from "eslint-plugin-tailwindcss";
export default defineConfigWithVueTs(
vue.configs['flat/recommended'],
tailwind.configs["flat/recommended"],
vueTsConfigs.recommended,
{
ignores: ['vendor', 'node_modules', 'public', 'bootstrap/ssr', 'tailwind.config.js', 'resources/js/components/ui/*'],
},
{
rules: {
'vue/html-indent': ['error', 4, {
attribute: 1,
baseIndent: 1,
closeBracket: 0,
alignAttributesVertically: true,
ignores: [],
}],
'vue/block-lang': 'off',
'vue/multi-word-component-names': 'off',
'@typescript-eslint/no-explicit-any': 'off',
"linebreak-style": ["error", "unix"],
"tailwindcss/no-custom-classname": "off",
"vue/no-mutating-props": "off",
"vue/prop-name-casing": "off",
"vue/no-setup-props-destructure": "off",
"vue/require-default-prop": "off"
},
},
{
plugins: {
"unused-imports": unusedImports,
},
},
{
plugins: {
'no-relative-import-paths': noRelativeImportPaths,
},
rules: {
"no-relative-import-paths/no-relative-import-paths": [
"warn",
{
"allowSameFolder": false,
"rootDir": "resources/js",
"prefix": "@"
}
],
},
},
{
settings: {
tailwindcss: {
config: './tailwind.config.js',
callees: ["classnames", "clsx", "ctl", 'twMerge'],
},
},
rules: {
"tailwindcss/no-custom-classname": "off",
}
},
);
{
"env": {
"browser": true,
"es2021": true,
"node": true
},
"extends": [
"eslint:recommended",
"plugin:vue/vue3-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:tailwindcss/recommended"
],
"overrides": [],
"parser": "vue-eslint-parser",
"parserOptions": {
"parser": "@typescript-eslint/parser",
"ecmaVersion": "latest",
"sourceType": "module"
},
"plugins": [
"vue",
"@typescript-eslint",
"unused-imports",
"no-relative-import-paths"
],
"rules": {
"linebreak-style": [
"error",
"unix"
],
"vue/multi-word-component-names": "off",
"tailwindcss/no-custom-classname": "off",
"vue/html-indent": [
"error",
4,
{
"attribute": 1,
"baseIndent": 1,
"closeBracket": 0,
"alignAttributesVertically": true,
"ignores": []
}
],
"vue/require-default-prop": "off",
"vue/no-mutating-props": "off",
"no-relative-import-paths/no-relative-import-paths": [
"warn",
{
"allowSameFolder": false,
"rootDir": "resources/js",
"prefix": "@"
}
],
"vue/prop-name-casing": "off",
"vue/no-setup-props-destructure": "off"
},
"ignorePatterns": [
"**/vue-i18n-locales.generated.js",
"**/ziggy.js"
]
}