在角度打字稿文件中导入节点模块时找不到模块错误

时间:2019-03-01 00:59:35

标签: node.js angular typescript electron

我正在尝试创建可在MacOS上管理Airplay的Electron应用

我正在使用Angular和TypeScript来包装此npm软件包Airplay npm package中的API:

这是我在TypeScript中使用的代码:

export class AirplaySharing {
    public init() {
        const airplayer = window['require']('airplayer');
        const list = airplayer();

        list.on('update', function(player) {
            console.log('Found new AirPlay device:', player.name);
        });
    }
}

我在致电init()

时收到此错误
  

错误:在以下位置找不到模块“ airplayer”
  Module._resolveFilename
at Function.Module._resolveFilename
at   Function.Module._load
在Module.require
在require
在   t.init
在新的t
在bs
在gs
在Ys

2 个答案:

答案 0 :(得分:0)

这项工作会

import airplayer = require('airplayer');

export class AirplaySharing {
    public init() {
        const list = airplayer();
        list.on('update', function(player) {
            console.log('Found new AirPlay device:', player.name);
        });
    }
}

使用typescript构造函数会更好吗?像这样:

import airplayer = require('airplayer');

export class AirplaySharing {
    constructor(public list: airplayer()) {
        list.on('update', function(player) {
            console.log('Found new AirPlay device:', player.name);
        });
    }
}

希望有帮助:)

答案 1 :(得分:0)

您是否安装了软件包npm install airplayer --save