zoukankan      html  css  js  c++  java
  • vue3+ts+vite配置@别名报错

    resolve: {
          alias: {
            "@": path.resolve(__dirname, "src")
          }
        },

    如上在vite.config.ts 配置了src别名为@。

    且通过  

    import router from "@/router"

    能正常访问页面。
    但是!
    vscode中报错了,如图

    反复检查了很多次,找不到问题。。

    ————————————————————————————————————————————————————————————————————————————————

    分割一下,已解决该问题,

    参考自: webpack 设置别名后 tslint报 TS(2307)错误_caperxi的博客-CSDN博客_ts(2307)

    总结:

    1. 需要在vite.config.ts 配置别名(附上我的配置文件全文)

    import { defineConfig, UserConfig } from 'vite'
    import vue from '@vitejs/plugin-vue'
    import styleImport from 'vite-plugin-style-import'
    import fs from "fs"
    import dotenv from 'dotenv'
    import path from 'path'
    
    export default defineConfig(({ mode }: UserConfig): UserConfig => {
      
      const GVA_ENV = dotenv.parse(fs.readFileSync(`.env.${mode}`))
    
      return {
        resolve: {
          alias: {
            "@": path.resolve(__dirname, "src")
          }
        },
        server: {
          port: Number(GVA_ENV.VITE_BASE_CLI_PORT),
          // 是否自动在浏览器打开
          open: true,
          // 是否开启 https
          https: false,
          proxy: {
            '/api': {
                target: 'http://localhost:9000/',
                changeOrigin: true,
                rewrite: (pathStr) => pathStr.replace('/api', '')
            }
          }
        },
        optimizeDeps: {
            include: [
                "element-plus",
                "element-plus/lib/locale/lang/zh-cn",
                "dayjs/locale/zh-cn",
            ],
        },
        build: {
            // 压缩
            minify: "esbuild",
            assetsDir: "",
            outDir: `./dist/${process.env.VITE_ENV}`,
        },
        plugins: [
          vue(),
          styleImport({
            libs: [{
              libraryName: 'element-plus',
              esModule: true,
              ensureStyleFile: true,
              resolveStyle: (name) => {
                name = name.slice(3)
                return `element-plus/packages/theme-chalk/src/${name}.scss`;
              },
              resolveComponent: (name) => {
                return `element-plus/lib/${name}`;
              },
            }]
          })
        ]
      }
    })
    View Code

    2. 需要在tsconfig.json 配置别名 (也一样附上)

    {
      "compilerOptions": {
        "target": "esnext",
        "module": "esnext",
        "moduleResolution": "node",
        "strict": true,
        "jsx": "preserve",
        "sourceMap": true,
        "resolveJsonModule": true,
        "esModuleInterop": true,
        "lib": ["esnext", "dom"],
        "baseUrl": "./",
        "paths":{
          "@": ["src"],
          "@/*": ["src/*"],
        }
      },
      "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
    }
    View Code
  • 相关阅读:
    【转载】jyupter notebook入门指南
    【转载】CnBlogs博文排版
    【转载】如何知道自己适合做什么
    【转载】讲真,认知几乎是人和人之间唯一的本质差别。
    Geekband C++面向对象高级程序设计-第六周课程5
    Geekband C++面向对象高级程序设计-第六周课程3
    Outlier实验-补充记录1
    Outlier实验-出错记录1
    Geekband C++面向对象高级程序设计-第六周课程2
    Geekband C++面向对象高级程序设计-第六周课程1
  • 原文地址:https://www.cnblogs.com/zhuxingqing/p/14878694.html
Copyright © 2011-2022 走看看