我正在尝试使用此库:https://github.com/magicthegathering/mtg-sdk-javascript在Angular2应用程序中。
不幸的是,我一直在盘旋,试图将其加载到我的应用程序中。
首先,如果我使用:
导入打字稿方面import { } from 'mtgsdk';
没有类型可以加载到{}。
如果我尝试使用类似的东西加载它:
import * as mtg from 'mtgsdk'
我无法这样做,因为它说它找不到一个名为mtgsdk的模块。
我已经使用
安装了模块npm install --save mtgsdk
另外,NPM安装在其他模块中正常工作。
如果我将其加载到使用中,则该应用程序会通过与此类似的内容进行编译:
var mtg = require('mtgsdk');
采用这种方法,我可以编译和启动,但是在浏览器中,我会发现有关它找不到的模块的许多错误。我认为它们是没有加载的SDK的先决条件
对于我带来的每个人,我都必须转到systemjs.config.js,并将指向指向的输入添加到模块的输入点,并且通常必须使用这样的块指定默认扩展名:
指针
'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'
默认扩展
'request-promise':
{
defaultExtension: 'js'
}
我不确定这是否是正确的方法,因为我添加的依赖性越多,最终需要的就越需要。在某一时刻,我从字面上添加了多达50个额外的依赖项,因为每次我启动时,浏览器控制台都会找到更多所需的。
是否有任何更轻松的方法将所有这些加载到?
中另外,其中一些(例如Tough-Cookie和Request-Promise-Core)的加载非常有问题,我无法让浏览器控制台停止抱怨它们。最后,其中一些似乎非常基本,例如URL,HTTP,HTTPS。这些似乎应该已经在场。
使用 systemjs
在先前版本的Angular 2中使用,但是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
,您可以在angular-cli.json
中的scripts[] array
中轻松添加它们以进行自动汇编。
然后像这样访问它们
declare const firebase: any;
这是一个快速启动教程,用于设置 Angular 使用@angular/cli
。