【问题标题】:angular2 using twitter module from npmangular2 使用来自 npm 的 twitter 模块
【发布时间】:2016-05-10 00:33:33
【问题描述】:

我在将 LODASH 导入 Angular2 应用程序时遇到问题,得到答案 on this post here 并且现在一切正常。

我遇到的下一个问题是我不知道如何让“twitter”npm 模块在应用程序中工作。

现在我安装了“npm install twitter”并尝试使用以下命令导入它:

import * as Twitter from 'twitter';

但我得到“找不到模块 'twitter'。我尝试添加到 system.config 没有运气。

我在这里做错了什么?导入和使用这个 twitter 模块的代码应该是什么样子?

这里是 index.html 中的 system.config:

  System.config({
    packages: {
      app: {
        format: 'register',
        defaultExtension: 'js'
      }
    },
    map: {
      lodash: 'node_modules/lodash/lodash.js',
      twitter: 'node_modules/twitter/index.js'
    },
    meta: {
      lodash: { format: 'amd' },
      twitter: { format: 'amd' }
    }
  });

【问题讨论】:

  • 看起来你的 systemjs 配置有问题,最好在问题中也发布它
  • 您尝试导入的 NPM 模块 (npm install twitter) 是一个客户端 API,旨在用于 NodeJS。
  • import Twitter from './twitter/index'; 不起作用?

标签: javascript ecmascript-6 angular


【解决方案1】:

我相信您必须将 twitter 模块的定义文件添加到类型文件夹中。或者使用 tsd 安装它。之后,您可以使用参考在您的打字稿代码中使用它:

手动下载

  1. here下载定义文件
  2. 将其添加到源根目录中的 Typings 文件夹中

使用 tsd 安装

  1. 在源文件夹中打开 cmd
  2. npm install tsd -g
  3. tsd install twitter --save

然后在你的打字稿文件的顶部添加引用

/// <reference path="../typings/twitter.d.ts"/>

【讨论】:

    【解决方案2】:

    twitter 模块是一个 commonjs 模块,所以它不适用于 amd。试试下面的配置看看是否有效:

    System.config({
      packages: {
      app: {
        format: 'register',
        defaultExtension: 'js'
      }
    },
    map: {
      lodash: 'node_modules/lodash/lodash.js',
      twitter: 'node_modules/twitter'
    },
    meta: {
      lodash: { format: 'commonjs' },
      twitter: { format: 'commonjs' }
    }
    });
    

    尝试像这样导入:

    import * as Twitter from 'twitter/index';
    

    有效吗?我不认为 lodash 也是一个 amd 模块,它也是 commonjs。您可能可以删除完整的元部分,systemJs 将在大多数情况下成功地自动检测模块系统的类型。

    【讨论】:

      【解决方案3】:

      我不认为你可以在这样的场景中使用这个模块,因为它是一个服务器端模块并且需要运行 Node。我已经设法使用其他模块实现 twitter 身份验证: https://github.com/jublonet/codebird-js

      我在一个实现社交媒体登录的简单项目上工作了一段时间。如果你愿意,你可以看看: https://github.com/bkulov/EventOrgApp

      【讨论】:

        猜你喜欢
        • 2023-03-05
        • 1970-01-01
        • 2017-01-12
        • 2017-07-20
        • 1970-01-01
        • 2013-01-09
        • 2017-07-08
        • 2016-06-18
        • 2019-12-20
        相关资源
        最近更新 更多