如何使用systemjs和@types将任何库导入角度项目

时间:2016-11-03 09:19:56

标签: angularjs angular typescript systemjs typescript-typings

平,

所以我在SystemJS上玩了一下,因为我在尝试做同样的事情时遇到了webpack问题(将第三方库或npm模块导入到项目中)。因此,对于此示例,我们将使用MQTT库(https://www.npmjs.com/package/mqtt)和基本的Angular 2项目(快速入门)。所以没什么复杂的,只有几个文件来测试配置。我的systemjs.config.js看起来像这样:

(function (global) {
  System.config({
    paths: { 'npm:': 'node_modules/' },
    map: { app: 'app',
     '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
     'mqtt': 'npm:mqtt/mqtt.js'
    },
    packages: {
      app: {
        main: './main.js',
        defaultExtension: 'js'
      }
    }
  });
})(this);

在app.component.ts中:

import * as mqtt from 'mqtt';

然而,在控制台日志中(启动应用程序时)我甚至不会看到/ node_modules / mqtt是必需的,因此我尝试在chrome中调试mqtt是未定义的。

我使用普通的lite-server启动应用程序。

我知道这可能是一种错误的方式,所以让我解释一下我尝试了什么。在第一次尝试时,我也安装了@ types / mqtt(https://www.npmjs.com/package/@types/mqtt),然后以同样的方式要求它。

正确的做法是什么。特别是如果第三方库是为#34;后端使用"它里面没有d.ts文件?我知道@types会在这种情况下提供帮助,但是如何?你如何通过systemjs连接前端的那些,并且它们也可以在生产中使用,比如说快递服务器?

0 个答案:

没有答案