我在LODASH导入到Angular2应用程序时出现问题,得到了答案on this post here,现在一切正常。
我遇到的另一个问题是我不知道如何制作" twitter" npm模块在app中工作。
现在我安装了" npm install twitter"并尝试将其导入:
notes = [Notes]()
notes.append(note)
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory,NSSearchPathDomainMask.AllDomainsMask, true)
let path: AnyObject = paths[0]
let arrPath = path.stringByAppendingString("/array.plist")
NSKeyedArchiver.archiveRootObject(notes, toFile: arrPath)
但我得到"找不到模块' twitter'。我试着添加到system.config没有运气。
我在这里做错了什么?导入和使用这个推特模块的代码应该如何?
这是index.html中的system.config:
import * as Twitter from 'twitter';
答案 0 :(得分:1)
我相信你必须将twitter模块的定义文件添加到typings文件夹中。或者使用tsd安装它。之后,您可以使用引用在您的打字稿代码中使用它:
手动下载
或
使用tsd安装
npm install tsd -g
tsd install twitter --save
之后在打字稿文件的顶部添加引用
/// <reference path="../typings/twitter.d.ts"/>
答案 1 :(得分:0)
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模块,它也是常见的。你可能可以删除完整的meta部分,systemJs会在大多数时候成功自动检测模块系统的类型。
答案 2 :(得分:0)
我不认为您可以在服务器端模块这样的场景中使用此模块,并且需要运行Node。我设法使用其他模块实现了twitter身份验证: https://github.com/jublonet/codebird-js
我已经在一个实施社交媒体登录的简单项目上工作了一段时间。如果你想要你可以看看: https://github.com/bkulov/EventOrgApp