Я пытаюсь интегрировать npm i handlebars
в свой существующий проект TS (v 3.4.5), но последовательно получаю TS2307: Cannot find module 'handlebars'.
.
Я использую Handlebars в нескольких различных модулях, распределенных по различнымфайлы.
В соответствии с этой объединенной функцией сопровождающие импортировали наборы из DefiniteTyped в репозиторий Handlebars и обесценили пакет @ types / handlebars .
Похоже, что TS не может определить тип репо и показывает ошибку TS2307.
Единственный способ получить чистую компиляцию - это вручную скопировать .d.ts файл из репозитория в самодельную папку @ types / handlebars.
В тот момент, пока я выполняю одно из следующих действий:
import Handlebars from "handlebars";
import * as Handlebars from "handlebars"
import "handlebars"
только в одном из файлов, которые используют Handlebars, я могу создать безошибочную сборку.
Мой tsconfig.json выглядит так:
{
"compileOnSave": false,
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": true,
"sourceMap": true,
"module": "es6",
"target": "es5"
},
"include": [
"./Scripts/app/**/*",
],
"exclude": [
"node_modules",
]
}
Без ручного копирования файла .d.ts кажется, что ничего не работает.
Итак, у меня есть два вопроса:
Какой правильный способ заставить Typescript распознавать этот окружающий модуль, который не требует ручного копирования / вставки?
Почему TS требует оператора импорта только в одном из модулей, которые используют Handlebars?Разве это не требуется во всех модулях, которые ссылаются на него?
Спасибо.