Я создаю пакет npm и имею структуру папок, подобную приведенной ниже:
project/
- src/
- index.tsx
- package.json
- config/
- tsconfig.json
- copy/
- tsconfig.json
- package.json
- dist/
- index.js
- package.json
- config/
- tsconfig.json
- copy/
- tsconfig.json
- package.json
- tsconfig.json
- package.json
project/
является основной папкой разработки. Это то, что стремится к github.
project/src/
содержит все исходные файлы разработки. Все файлы JavaScript кодируются в Typescript.
project/dist/
- это папка дистрибутива, которая публикуется в npm и представляет собой просто скомпилированную версию project/src/
. Файлы .ts и .tsx компилируются в файлы .js / .jsx, а файлы .json просто копируются из project/src/
без изменений.
project/src/config/
и project/dist/config/
содержат файл tsconfig.json по умолчанию, который не используется в этом проекте. Его цель - расширить файлы tsconfig.json в project/src/copy/
и project/dist/copy/
. Подробнее об этом ниже.
project/src/copy/
и project/dist/copy/
- это файлы, которые нужно скопировать в корневой каталог пользователя после установки пакета npm (через postinstall ). Это потому, что пакет, который я создаю, по сути является шаблоном, поэтому, как только пользователь установит пакет, в корневой каталог будет включен файл по умолчанию package.json
, содержащий все скрипты, хуки, пакеты и т. Д. Для шаблона, а также tsconfig.json
файл, который не более чем:
{
"extends": "./node_modules/myPackage/config/tsconfig.json"
}
Это расширяет файл tsconfig.json в project/dist/config/tsconfig.json
.
Причина, по которой я расширяю его вместо простого кодирования содержимого project/dist/config/tsconfig.json
, заключается в том, что пользователям просто нужно запустить npm update myPackage
, и если файл tsconfig.json изменился, они будут автоматически использовать новый настройки конфигурации.
В противном случае, если я просто скопирую содержимое project/dist/config/tsconfig.json
в корневой каталог пользователя, обновленная конфигурация не будет получена, поскольку postinstall
не работает для npm update
, только npm install
.
У меня проблема в том, что я получаю ошибки типа в project/src/copy/tsconfig.json
и project/dist/copy/tsconfig.json
, потому что путь, который он расширяет, явно не существует.
Я пытался добавить "exclude": ["src/copy/tsconfig.json", "dist/copy/tsconfig.json"]
к project/tsconfig.json
, однако это не работает. В этих файлах все еще отображаются ошибки типов.
Так как же заставить Typescript не сообщать об ошибках для этих двух конкретных файлов?
EDIT : Это похоже на проблему с VSCode. Если я запускаю tsc
в CLI, он не возвращает никаких ошибок (я предполагаю, что tsc
не проверяет файлы .json).