我在将 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 安装它。之后,您可以使用引用在打字稿代码中使用它:
手动下载
- 从此处下载定义文件
- 将其添加到源根目录下的键入文件夹中
或
使用 TSD 安装
- 在源文件夹中打开cmd
-
npm install tsd -g
-
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