遇到的问题
在vite.config.ts中配置了文件夹的别名,但是在eslint中报错
问题的解决
安装 eslint-import-resolver-alias 这个插件,官方文档
npm i eslint-import-resolver-alias -D
// vite.config.ts
import { defineConfig } from "vite"
import vue from "@vitejs/plugin-vue"
import { join, resolve } from "path"
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
resolve: {
alias: [
{ find: "@", replacement: resolve("./src") },
{ find: "_c", replacement: resolve("./src/components") },
{ find: "_v", replacement: resolve("./src/views") },
{
find: /~(.+)/,
replacement: join(process.cwd(), "node_modules/$1")
}
]
},
base: "./", // 打包路径
server: {
port: 4000, // 服务端口号
open: true, // 服务启动时是否自动打开浏览器
cors: true // 允许跨域
}
})
// .eslintrc..js
module.exports = {
env: {
browser: true,
es2021: true,
node: true
},
extends: [
"plugin:vue/vue3-essential",
"airbnb-base",
"plugin:prettier/recommended", // 添加 prettier 插件
"plugin:import/typescript"
],
parserOptions: {
ecmaVersion: "latest",
parser: "@typescript-eslint/parser",
sourceType: "module"
},
plugins: ["vue", "@typescript-eslint"],
rules: {
"import/no-extraneous-dependencies": 0
},
settings: {
"import/resolver": {
alias: {
map: [
["@", "./src"],
["_c", "./src/components"],
["_v", "./src/views"]
],
extensions: [".ts", ".js", ".jsx", ".json"]
}
}
}
}
// tsconfig.json
{
"compilerOptions": {
"target": "esnext",
"useDefineForClassFields": true,
"module": "esnext",
"moduleResolution": "node",
"strict": true,
"jsx": "preserve",
"sourceMap": true,
"resolveJsonModule": true,
"isolatedModules": true,
"esModuleInterop": true,
"lib": ["esnext", "dom"],
"skipLibCheck": true,
"baseUrl": ".",
"types": [
"node"
],
"paths": {
"@/*": [
"src/*"
],
"_c/*": [
"src/components/*"
],
"_v/*": [
"src/views/*"
]
}
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue", "vite.config.ts"],
"references": [{ "path": "./tsconfig.node.json" }]
}