Несколько tsconfig. json в vs-коде для проекта машинописного текста - PullRequest
0 голосов
/ 17 июня 2020

Прежде всего, я знаю, что есть несколько похожих вопросов, но не смог найти решение этой проблемы ни в одном из них ...

Итак, у меня есть проект 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

...