离子2无法find模块'dgram'
我已经安装了一个模板Ionic 2应用程序,并希望添加NPM包bonjour
在安装并在我的组件中包括这样的包:
var Bonjour = require('bonjour'); var bonjour = new Bonjour();
该应用程序不会运行说明'无法find模块dgram'
该应用程序已经安装了bonjour包和bonjourtypes。
问题
应用程序无法find位于@ types / node文件中的模块dgram。 该项目正在运行TS 2.4.2 ,不应该需要任何对@types的引用,这应该被自动拾取。
我试过了什么
我试着用多种方式试图包含@types文件夹,方法是在ts.config.json文件中设置typeroot或type。 这并没有改变任何东西。
我试过指定types:
"types": ["node", "bonjour"]
我试着重新安装所有节点模块并清除caching
我试着在require语句上面的组件中包含一个引用path:
/// <reference path="node_modules/@types/node/index.d.ts" /> var Bonjour = require('bonjour'); var bonjour = new Bonjour();
这一切都没有帮助。 任何想法如何使我的应用程序正确加载此模块?
包Bonjour有一个DatagramPlugin需要dgram正常工作。 在离子2这个包是不可用的。 解决scheme是使用Native Zeroconf软件包作为替代scheme。
自从v0.1.99开始,dgram库就包含在node.js中了 。
只要您使用v0.1.99版本的节点版本,就会一直定义dgram。 您的问题只与Typescripttypes。
确保使用npm i --save-dev @types/node
安装节点types,并且在tsconfig.json文件中包含es6 lib。
如果上一步不起作用,请在顶部添加以下内容: import * as dgram from "dgram";
如果没有任何工作,你可以从这里复制模块定义自己导出。
额外提示:如果因为某种原因不信任tsconfig.json
,直接在tsc命令中传递lib
和types
参数,如: tsc --lib es6 --types node -p .