Я пытаюсь импортировать файл .png в свой проект Typescript, но модуль не может быть найден. Я использую Parcel в качестве компилятора и хочу добавить определения типов. Как мне сделать это конкретно для Parcel, потому что я не смог найти никакой информации об этом?
Parcel — Как добавить определения типов?
Ответы (2)
Parcel использует компилятор машинописного текста, который настраивается с помощью tsconfig.json. Соответствующую документацию можно найти здесь
Среди прочего конфиг позволяет указать исходные файлы для компиляции. Следующая конфигурация будет допустимой, все файлы .ts
и .d.ts
в пути src будут обработаны компилятором:
{
"include": [
"src/**/*"
]
}
В дополнение к этому, многие модули узлов поставляются с определениями машинописного текста. Они обрабатываются этим правилом. :
По умолчанию все видимые пакеты «@types» включены в вашу компиляцию. Пакеты в node_modules/@types любой вложенной папки считаются видимыми; в частности, это означает пакеты внутри ./node_modules/@types/, ../node_modules/@types/, ../../node_modules/@types/ и так далее.
Если модуль, который должен обрабатывать файл .png, не может быть найден, это, вероятно, потому, что он не поставляется с определениями машинописного текста из коробки. Существует репозиторий, в котором собраны определения типов для многих узловых модулей. Может быть, вы найдете определения там. Может быть, это?
Есть также пример установки определений.
Также возможно, что для этого модуля еще не существует определений типов. В этом случае вам придется придумать свой собственный. Это не обязательно так плохо, как кажется. Часто вы можете создать минимальный файл объявления, который охватывает только несколько методов, которые вы фактически используете. Вот документы по этому вопросу. Примеры.
ИЗМЕНИТЬ:
Забыл упомянуть: похоже, это не связано с Parcel. Под капотом Parcel просто вызывает компилятор машинописного текста. Устранение посредника может сделать сообщения об ошибках более понятными. Возможно, вы захотите попробовать вызвать компилятор машинописного текста напрямую и настроить его до тех пор, пока не будут обработаны все ошибки и предупреждения. Это будет более прямым и скроет дополнительную сложность Parcel. Если компилятор машинописного текста доволен, Parcel тоже должен работать.
Решил это, добавив globals.d.ts в проект с declare module "*.png";
в нем.