При компиляции моего проекта TypeScript компилятор выдает следующую ошибку:
node_modules/@types/domutils/index.d.ts:6:10 - error TS2614: Module '"../../domhandler/lib"' has no exported member 'DomElement'. Did you mean to use 'import DomElement from "../../domhandler/lib"' instead?
Оскорбительная строка:
import { DomElement } from "domhandler";
Проблема в том, что в файле ввода, из которого выполняется импорт, интерфейс DomElement не является экспортируемым по умолчанию интерфейсом, как показано ниже:
export interface DomElement {
attribs?: {[s: string]: string};
children?: DomElement[];
data?: any;
name?: string;
next?: DomElement;
parent?: DomElement;
prev?: DomElement;
type?: string;
}
Если я удалю фигурные скобки, это действительно сработает, но мне это кажется проблематичным:
- У меня создалось впечатление, что без фигурных скобок можно импортировать только экспорт по умолчанию. Почему этот импорт необходим без фигурных скобок?
- Эта проблема возникает в определениях типов в папке
node-modules
, как указано в DefinentyTyped. Я не хочу изменять файл зависимостей. В Github нет связанных открытых проблем, поэтому я предполагаю, что это работает. Фактически, это работает для коллег, использующих более старую версию Node (v8), но не похоже, что это должно иметь значение.
Версии:
- Node.js - 12.14.0
- Пункт списка
- TypeScript 3.7.2 (также проверено, не работает на 3.7.4)
- Определения типов для domhandler 2.4 (https://github.com/DefinentyTyped/DefinitiTyped/tree/master/types/domhandler)
- Определения типов для domutils 1.7 (https://github.com/DefinentyTyped/DefinitiTyped/tree/master/types/domutils)
ОБНОВЛЕНИЕ
Вот мой tsconfig.json:
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"target": "es6",
"noImplicitAny": true,
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist",
"baseUrl": ".",
"paths": {
"*": [
"node_modules/*"
]
}
},
"include": [
"src/**/*"
]
}
sanitize-html
в качестве дерева зависимостейsanitize-html
- ›htmlparser2
-›domutils
- ›domhandler
. Конфигурация (с машинописным текстом 3.6.4) работала в узле 8 до обновления до узла 12. - person sceee   schedule 27.12.2019npm-shrinkwrap.json
илиpackage-lock.json
, есть ли там несколько версийdomutils
? А также, какие зависимости используютсяdomutils
в каких версиях? - person sceee   schedule 27.12.2019