尝试将 JavaScript sdk 加载到 Angular2 应用程序中。找不到所有依赖项



我正在尝试使用此库: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

最新更新