Angular2 使用 NPM 的 Twitter 模块



我在将 LODASH 导入 Angular2 应用程序时遇到问题,在这里得到了这篇文章的答案,现在一切正常。

我遇到的下一个问题是我不知道如何使"推特"npm 模块在应用程序中工作。

现在我安装了"npm install twitter"并尝试导入它:

import * as Twitter from 'twitter';

但我得到"找不到模块'推特'。我尝试添加到system.config,但没有运气。

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

这是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' }
    }
  });
我相信

你必须将 Twitter 模块的定义文件添加到打字文件夹中。或者使用 tsd 安装它。之后,您可以使用引用在打字稿代码中使用它:

手动下载

  1. 从此处下载定义文件
  2. 将其添加到源根目录下的键入文件夹中

使用 TSD 安装

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

之后,在打字稿文件的顶部添加引用

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

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 将在大多数情况下成功自动检测模块系统的类型。

我认为您不能在这种情况下使用此模块,因为它是服务器端模块并且需要运行 Node。我已经设法使用其他模块实现了推特身份验证:https://github.com/jublonet/codebird-js

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

最新更新