Импорт псевдонимов не будет работать в шаблоне Vite (React, Typescript)

Я установил shadcn/ui в свой шаблон Vite, следуя документации. Но компилятор, похоже, не распознал псевдонимы. Примечание. Typescript имеет несколько файлов конфигурации, а именно: tsconfig.json, tsconfig.app.json и tsconfig.node.json. Первоначально ключ опции «compilerOptions» был определен не в исходном файле tsconfig, а в двух других файлах. Поэтому я продублировал его, чтобы включить конфигурацию псевдонима в исходный файл.

// tsconfig.json
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    }
  },
  "files": [],
  "references": [
    {
      "path": "./tsconfig.app.json"
    },
    {
      "path": "./tsconfig.node.json"
    }
  ]
}

// vite.config.ts
import path from "path";
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "./src"),
    },
  },
});

Вы пытались перезапустить сервер TS из кода VS?

Abdullah Almofleh 11.07.2024 20:38

Если не помогло, можете проверить этот вопрос stackoverflow.com/questions/66043612/…

Abdullah Almofleh 11.07.2024 20:42

Да, я это сделал, используя сочетание клавиш CTRL + SHIFT + P.

DigitNerd 11.07.2024 20:43

в vite.config.ts попробуйте поставить вместо path.resolve(__dirname, "./src") просто /src вот так src: '/src', у меня это работает

Abdullah Almofleh 11.07.2024 20:49

Спасибо за ссылку. Я попробовал использовать самый популярный ответ (набравший наибольшее количество голосов), но это все равно не сработало. Я также попробовал ваше последнее предложение, пока ничего

DigitNerd 11.07.2024 20:58
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
5
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема видимо была в файлах tsconfig. Параметр paths должен был быть установлен как в файле tsconfig.app.json, так и в простом tsconfig.json, чтобы компилятор ts правильно разрешал путь и чтобы shadcnui мог устанавливать компоненты в правильный каталог на основе конфигураций простого tsconfig.

//tsconfig.json
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    }
  },
  "files": [],
  "references": [
    {
      "path": "./tsconfig.app.json"
    },
    {
      "path": "./tsconfig.node.json"
    }
  ]
}

// tsconfig.app.json
    {
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    }
  },
  "include": ["src"]
}

Другие вопросы по теме