我正在尝试在Angular2应用程序中使用此库:https://github.com/MagicTheGathering/mtg-sdk-javascript。
不幸的是,我一直在试图将它加载到我的应用程序中。
首先,在TypeScript端,如果我使用:
导入它<pre></pre>
没有类型可以加载到{}。
如果我尝试使用类似的东西加载它:
import { } from 'mtgsdk';
我无法,因为它说它无法找到名为mtgsdk的模块。
我已经使用
安装了模块import * as mtg from 'mtgsdk'
此外,npm安装适用于其他模块。
如果我通过类似于此的东西加载应用程序,应用程序编译正常:
npm install --save mtgsdk
采用这种方法,我能够编译并启动,但在浏览器中,我收到了一些无法找到的模块错误。我认为它们是没有加载的sdk的先决条件,所以我开始通过package.json将它们引入。
对于我带来的每一个,我必须转到systemjs.config.js并添加一个指向模块入口点的条目,并且经常必须使用这样的块指定默认扩展名:
指针
var mtg = require('mtgsdk');
默认扩展程序
'mtgsdk': 'npm:mtgsdk/lib/index.js',
'request-promise': 'npm:request-promise/lib/rp.js',
'ramda': 'npm:ramda/dist/ramda.js',
'emitter20': 'npm:emitter20/index.js',
'bluebird': 'npm:bluebird/js/browser/bluebird.js',
'request': 'npm:request/index.js'
我不确定这是否是正确的方法,因为我添加的依赖项越多,我最终需要的就越多。有一次,我最多添加了50个额外的依赖项,因为每次启动时,浏览器控制台都会找到更多需要的东西。
有没有更简单的方法加载所有这些?
此外,其中一些(例如硬饼干和请求承诺核心)加载非常有问题,我无法让浏览器控制台停止抱怨它们。最后,其中一些似乎非常基本,如url,http,https。看起来他们应该已经存在了。
答案 0 :(得分:0)
在先前版本的Angular 2中使用systemjs
,但Angular 2已演变为Angular 4,具有超级新功能,如Angular CLI。
我建议你使用Angular CLI,@angular/cli
。
导入节点模块
由于mtgsdk
是一个节点模块,您可以使用
import * as mtg from 'mtgsdk'
但是,要编译程序,必须为其安装类型定义。或者在/typings.json
中为其声明一个,否则您的应用可能无法构建。
导入客户端脚本
对于firebase.js
等客户端脚本,您不再需要在systemjs.config.js
中添加客户端脚本作为条目。
使用@angular/cli
,您可以轻松地将其添加到scripts[] array
angular-cli.json
中以进行自动编译。
然后像这样访问它们
declare const firebase: any;
Here是一个快速入门教程,用@angular/cli
设置 Angular 。