Как исправить ошибку Cannot find module '#q-app/wrappers' в Vue + Quasar
Эта статья переведена с корейского оригинала с помощью ИИ. Цены в скобках — приблизительный пересчёт. Читать оригинал на корейском →
![]() |
| Ааааааааааааааааааааааааааа |
Возможно, у вас возникает такая ошибка, или та, что ниже.
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" Или
ERROR(vue-tsc) Cannot find module '#q-app/wrappers' or its corresponding type declarations.- vue 3.4.18
- quasar 2.16.0
- quasar/app-vite 2.1.4
Не знаю, когда именно Quasar изменил способ использования, но в версии, которую я сейчас использую, он отличается от старого. Особенно если вы используете CLI вместе с Vite, вы обязательно столкнетесь с этой проблемой. Ссылка
import { defineConfig } from "@quasar/app-vite";Если это был старый способ, то теперь нужно делать так:
import { defineConfig } from '#q-app/wrappers'Импортировать нужно именно так. При этом возникает ошибка, что #q-app не может быть импортирован. Если спросить ChatGPT или Cursor.ai, они посоветуют удалить node_modules и снова запустить npm install, или попробовать quasar clean --qconf, или импортировать старым способом. Похоже, они еще не обучились на недавних изменениях.
Основная проблема связана с багом. Патч уже вышел, но он выглядит скорее как временное решение, а не идеальное.
Если в tsconfig.json определен baseUrl, он будет конфликтовать с tsconfig.json, который Quasar создает и использует сам (тот, что использует Quasar, находится в /.quasar/tsconfig.json и определен в ключе extends).
Решение
Удалите baseUrl и path из tsconfig.json.
Ниже приведен рекомендуемый файл tsconfig.json.
{
"extends": "./.quasar/tsconfig.json",
"compilerOptions": {
"esModuleInterop": true,
"skipLibCheck": true,
"target": "esnext",
"allowJs": true,
"resolveJsonModule": true,
"moduleDetection": "force",
"isolatedModules": true,
"module": "preserve",
"noEmit": true,
"lib": [
"esnext",
"dom",
"dom.iterable"
]
},В vite.config.js тоже есть похожие настройки, но их можно игнорировать, так как это пути alias для Vite. Конфликтует только tsconfig.
