2017-08-01 88 views
13

我已經安裝了一個模板離子2應用模塊「DGRAM」和要添加的NPM包bonjour離子2找不到

安裝和包括這樣的包在我的組件後:

var Bonjour = require('bonjour'); 
var bonjour = new Bonjour(); 

該應用程序不會運行陳述「無法找到模塊dgram」

該應用程序已安裝bonjour包和bonjour類型。

應用程序無法找到該模塊DGRAM它位於@類型/節點文件中的問題。該項目正在運行TS 2.4.2並應該不需要任何對@types的引用,這應該自動拾取。

有什麼我試圖

我想包括@types以多種方式反正文件夾,通過在ts.config.json文件中設置typeroots或類型。這沒有改變任何東西。

我試圖指定類型:

"types": ["node", "bonjour"] 

我嘗試重新安裝所有的節點模塊和清除緩存

我試過,包括要求上述聲明在我的組件的參考路徑:

/// <reference path="node_modules/@types/node/index.d.ts" /> 

var Bonjour = require('bonjour'); 
var bonjour = new Bonjour(); 

這一切都沒有幫助。關於如何使我的應用程序正確加載此模塊的任何想法?

+0

我在[email protected] –

+1

@JackD上遇到了同樣的問題請參閱下面的答案 – WJM

+0

您是否檢查了導入路徑?通常情況下是路徑。 –

回答

7

包卓悅有DatagramPlugin需要DGRAM正常運作。在Ionic 2中,該軟件包不可用。解決方案是使用Native Zeroconf軟件包作爲替代方案。

+0

謝謝,我已經找到了這種方式!我無法使Zeroconf工作(它從不觸發任何mDns主機的手錶),但這是另一回事:) –

1

dgram庫自從v0.1.99包含在node.js中,如所見here

只要您使用節點版本後v0.1.99,您將始終有dgram定義。您的問題僅限於Typescript類型。


請確保您有npm i --save-dev @types/node安裝節點類型和要包括在你的tsconfig.json文件ES6庫。

如果上一步不工作添加此頂部:import * as dgram from "dgram";

實在不行您可以將模塊定義從here它自己的出口複製。


額外提示:如果你不相信因爲某些原因tsconfig.json直接在TSC命令傳遞libtypes參數如:tsc --lib es6 --types node -p .

+0

我嘗試了所有的解決方案,但都沒有幫助。我也嘗試更改Ionic webpack配置文件,但問題仍然存在 – WJM

+0

它必須是您的環境中的問題。 –

+0

是的,Ionic似乎無法在瀏覽器端代碼中使用dgram – WJM