【问题标题】:NPM-MQTT Angular2 requireNPM-MQTT Angular2 需要
【发布时间】:2017-02-07 18:36:01
【问题描述】:

我无法将 https://www.npmjs.com/package/mqtt 集成到我的 angular2 typescript 项目(使用 angular-cli 创建)中。

使用var mqtt = require('mqtt'); 会产生错误Cannot find name 'require'

因此,我尝试通过将 import 添加到 modules.ts 来使用 import(就像我通常那样):

import { mqtt } from 'mqtt/mqtt';

...
imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    mqtt
],

我也用import { MQTT } from 'mqtt/mqtt';import { MqttClient } from 'mqtt/mqtt'; 尝试了这个(最后一个在mqtt.js 中导出

我什至尝试将它们导入类文件本身。

我很确定这是一个小错误,但我无法理解它。

(注意:“@types/node”:“^7.0.0”也已安装,因此this 也不起作用)

我的 tsconfig:

{
    "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "moduleResolution": "node",
        "isolatedModules": false,
        "jsx": "react",
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "declaration": false,
        "noImplicitAny": false,
        "noImplicitUseStrict": false,
        "removeComments": true,
        "noLib": false,
        "preserveConstEnums": true,
        "suppressImplicitAnyIndexErrors": true
    },
    "exclude": [
        "node_modules",
        "typings/browser",
        "typings/browser.d.ts"
    ],
    "compileOnSave": false,
    "buildOnSave": false,
    "atom": {
        "rewriteTsconfig": false,
        "formatOnSave": true
    }
}

【问题讨论】:

  • 你是在使用 angular-cli 还是手动管理所有的 webpack/ts 配置?
  • 是的,我正在使用 angular-cli。 1个月前做webpack,最近换了。

标签: node.js angular mqtt


【解决方案1】:

导入语句不正确;如果您从 Typescript 文件中的通用 Javascript 模块导入,则可以导入所有这些 - 这适用于任何具有一些导出的 Javascript 库:

import * as mqtt from 'mqtt';
let client = mqtt.connnect('mqtt://hostname.example.com'); 

如果模块是用 Typescript 编写的,或者在 package.json 中添加了您的 devDependencies 中的类型,您可以导入一些导出的字段:

import { connect } from 'mqtt';
let client = connect('mqtt://hostname.example.com');

就这个模块而言,它似乎内置了类型,因此您可以导入模块的特定部分。

在您的示例中,您实际上是在尝试从 mqtt 模块的 mqtt 子文件夹中导入 mqtt 符号,该符号可能不存在,因此会失败。

希望有帮助!

【讨论】:

    【解决方案2】:

    阅读它在 ts Documentation 中建议如何使用它的文档

    import { connect } from 'mqtt';
    const client  = connect('wxs://test.mosquitto.org');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-30
      • 1970-01-01
      • 2013-03-20
      • 2018-09-28
      • 2013-07-09
      • 2017-10-19
      相关资源
      最近更新 更多