Проект на js, jsconfig/tsconfig не используются.
Установил vitest, теперь в каждом файле есть объявление
node_modules/@vitest/globals.d.ts
:
declare global {
const suite: typeof import('vitest')['suite']
const test: typeof import('vitest')['test']
const chai: typeof import("vitest")["chai"]
const describe: typeof import('vitest')['describe']
const it: typeof import('vitest')['it']
const expectTypeOf: typeof import('vitest')['expectTypeOf']
const assertType: typeof import('vitest')['assertType']
const expect: typeof import('vitest')['expect']
const assert: typeof import('vitest')['assert']
const vitest: typeof import('vitest')['vitest']
const vi: typeof import('vitest')['vitest']
const beforeAll: typeof import('vitest')['beforeAll']
const afterAll: typeof import('vitest')['afterAll']
const beforeEach: typeof import('vitest')['beforeEach']
const afterEach: typeof import('vitest')['afterEach']
const onTestFailed: typeof import('vitest')['onTestFailed']
const onTestFinished: typeof import('vitest')['onTestFinished']
}
export {}
Например в пустом файле
index.js
можно вызвать:
test();
- ide считает что всё хорошо, при запуске получаем
Uncaught ReferenceError: test is not defined
При этом пока окно подсказок импортов активно, я могу выбрать откуда импортировать, там есть тот самый globals и иное расположение, если выбрать globals - останется поведение выше, если выбрать иное - импортируется как должно быть.
В
Languages & Frameworks => JavaScript => Libraries
есть предопределённые подключения, среди них есть node_modules,
описание того как это работает.
Это даёт ему информацию о функция и методах в этих библиотеках, что мы потом и видим в окне подсказок.
- Я отключил node_modules и глобальные объявления исчезли, как и всё остальное из node_modules. Но мне нужно отключить именно vitest/globals или только globals для всего хотя-бы.
Полез на youtrack:
1,
2 - никакого внятного ответа не получил, кроме предложения сменить тип файла с глобальными объявлениями на текст, чтобы исключить из индексации.
Следом я открыл вопрос в vitest репозитории, мне
говорят ровно то, что написано в документации
globals по умолчанию отключён.
Вопрос, что мне с этим делать?
- Я не хочу для каждой зависимости с глобальными объявлениями файлы трогать, ведь придётся патчить пакет и прочей ерундой заниматься.