Прежде всего, я знаю, что есть несколько похожих вопросов, но не смог найти решение этой проблемы ни в одном из них ...
Итак, у меня есть проект Electron JS, созданный с помощью Nextron , где файловая структура выглядит примерно так:
├── main/
│ └──...
├── renderer/
│ ├── src/
│ │ └── index.ts
│ ├── td/
│ │ └── env.d.ts
│ ├── ...
│ └── tsconfig.json
├── tsconfig.json
└──...
Содержимое файла tsconfig.json
в root выглядит следующим образом:
{
"compilerOptions": {
"target": "es5",
"module": "esnext",
"moduleResolution": "node",
"jsx": "preserve",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"resolveJsonModule": true,
"isolatedModules": true
},
"include": ["renderer/next-env.d.ts", "**/*.ts", "**/*.tsx"],
"exclude": ["node_modules", "renderer/next.config.js", "app", "dist"]
}
в то время как один в renderer/tsconfig.json
:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@src": ["src"],
"@src/*": ["src/*"]
}
},
"include": ["./td/*.ts"]
}
Все работает нормально, когда я запускаю проект через
npm run dev
или
npm run build
, но в vs-коде Я получаю ошибки (в файлах внутри папки renderer
) о константах и других объявлениях, которые не найдены (которые определены в /renderer/td/env.d.ts
)
Это означает, что я мог продолжать работать, просто наблюдая ошибки в IDE. и тогда процесс сборки будет работать нормально (т.е. я действительно могу получить значения объявленных констант среды и получить доступ к определенным псевдонимам путей), но это довольно раздражает ...
Любая идея, как сделать vs- код правильно определить включенные файлы?
Просто я В случае, содержимое /renderer/ts/env/d/ts
выглядит примерно так:
/** Env constant set to (package.json).name */
declare const PACKAGE_NAME: string;
/** Env constant set to (package.json).version */
declare const PACKAGE_VERSION: string;
/** Env constant set to the build ID */
declare const BUILD_ID: string;
/** Env constant set to the git commit hash */
declare const COMMIT_HASH: string;
/** Env constant set to the 7 first characters of the git commit hash */
declare const COMMIT_HASH_SHORT: string;
/** Env constant set to `true` for the code to use in server side, `false` for the one delivered to the client */
declare const IS_SERVER: boolean;
/** Env constant set to `true` for the production build, `false` for development */
declare const IS_PRODUCTION: boolean;
, который в основном объявляет переменные среды, определенные во время сборки веб-пакетом на Next JS
Изменить: Загрузил репозиторий с минимальной конфигурацией для воспроизведения этой проблемы: https://github.com/danikaze/vscode-multi-tsconfig