Ionic 2 не может найти модуль "dgram"
Я установил приложение шаблона Ionic 2 и хочу добавить пакет NPM bonjour
после установки и включения пакета в мой компонент такой:
var Bonjour = require('bonjour');
var bonjour = new Bonjour();
приложение не будет работать с указанием "не удается найти модуль dgram"
в приложении установлены как пакет bonjour, так и типы bonjour.
проблема
приложение не может найти модуль dgram, который находится в файл @types / node. Проект запущен TS 2.4.2 и не должны нуждаться в каких-либо ссылках на @types, это должно быть подобрано автоматически.
что я пробовал
Я попытался включить папку @types в любом случае несколькими способами, установив typeroots или типы в ts.конфиг.файл json. Это ничего не меняло.
Я попытался указать типы:
"types": ["node", "bonjour"]
Я попытался переустановить все модули узлов и очистка кэша
Я попытался включить ссылочный путь в мой компонент выше оператора require:
/// <reference path="node_modules/@types/node/index.d.ts" />
var Bonjour = require('bonjour');
var bonjour = new Bonjour();
Это все не помогло. Есть идеи о том, как заставить мое приложение правильно загрузить этот модуль?
2 ответов
пакет Bonjour имеет DatagramPlugin которые требуют, что dgram действует правильно. В Ionic 2 этот пакет недоступен. Решение заключается в использовании собственного пакета Zeroconf в качестве альтернативы.
библиотека dgram входит в комплект node.js с v0.1.99 как видно здесь.
у вас всегда будет dgram, определенный, пока вы используете версию узла post v0.1.99. Ваша проблема только с типами Typescript.
убедитесь, что вы устанавливаете типы узлов с помощью npm i --save-dev @types/node
и что вы включаете ES6 lib в свой tsconfig.файл json.
Если предыдущий шаг не работает, добавьте это сверху: import * as dgram from "dgram";
если ничего не работает вы можете скопировать определение модуля от здесь экспортировать его себе.
дополнительный совет: если вы не доверяете своему tsconfig.json
по какой-то причине передайте lib
и types
аргумент непосредственно в команде tsc, такой как:tsc --lib es6 --types node -p .