平,
所以我在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连接前端的那些,并且它们也可以在生产中使用,比如说快递服务器?