试图将JavaScript sdk加载到Angular2应用程序中。无法找到所有依赖项
我正尝试在Angular2应用程序中使用此库:https://github.com/MagicTheGathering/mtg-sdk-javascript。试图将JavaScript sdk加载到Angular2应用程序中。无法找到所有依赖项
不幸的是,我一直在试图将它加载到我的应用程序中。
首先,在打字稿侧,如果我导入它使用:
import { } from 'mtgsdk';
没有类型加载到{}。
如果我尝试使用类似的东西来加载它:
import * as mtg from 'mtgsdk'
我不能,因为它说,它无法找到一个名为mtgsdk模块。
我已经安装使用
npm install --save mtgsdk
同样的模块,NPM安装其它模块做工精细。
,如果我使用经由一些类似的要求加载应用程序编译罚款:
var mtg = require('mtgsdk');
采取这种做法,我能够编译和发布,但在浏览器中,我得到了一些错误关于它无法找到的模块。我认为它们是未加载的sdk的先决条件,所以我开始通过package.json将它们引入。
对于每一个我带来,然后我得去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;
Here是一个快速入门教程设置角与@angular/cli
。
您正在使用什么版本的Angular? – oreofeolurin
@oreofeolurin 4.3.6 – Minsc