我试图了解如何使用TypeScript将外部js库包含到Ionic2项目中,并且我遵循了我发现的没有成功的指令。
我对Ionic和Typescript很新,所以我猜测还有(不止)我做错了什么。我试图在我的页面中使用D3库(其他库也一样,我用D3来解释)。
这是我从示例项目开始到目前为止所做的:
ionic start mytest --v2 --ts
cd mytest
npm install d3 --save
typings install registry:dt/d3 --global --save
在页面中我导入d3如下:
import * as d3 from 'd3'
或 从' d3'
导入d3运行应用程序并编译TypeScript时,出现错误:
TS2307: Cannot find module 'd3'.
因此,根据我的理解,看起来TS编译器无法找到该模块的类型定义文件。但是,我假设与Ionic2默认样本一起安装的打字稿系统包括类型定义文件(index.d.ts,引用 ///< reference path =" globals / d3 /index.d.ts" /> )行:
"**/*.ts",
在tsconfig.json中的FilesGlob项下。当前的编译器版本是1.8.7。我还试图在"文件"下引用同一个文件。键入tsconfig.json或
下的文件"typings/globals/d3/index.d.ts"
但没有任何改变。我仍然得到相同的编译错误。此外,使用Atom编辑器时,库已正确拾取,成员将显示在自动完成列表中。我不确定错误是否与打字有关,或者编译器是否找不到源javascript库。
你有什么建议吗? 除了这个编译异常,我应该在www / index.html中添加d3.js文件吗?或者它是自动打包(并且我不清楚如何)到应用程序包javascript文件(可能这个问题和编译错误的原因之间有联系)?
答案 0 :(得分:0)
我最近遇到了同样的问题,当我们使用打字时,有些文件需要修改。
看看这个链接,它对我非常有用:
http://x-team.com/2016/06/include-javascript-libraries-in-an-ionic-2-typescript-project/
答案 1 :(得分:0)
我有编译错误,通过npm将最新的d3版本4添加到Angular 2项目中。这也可能与Ionic 2相关。我认为有一个xhtmlrequest依赖项导致了typescript编译器问题。
我使用旧版本的d3.jd
npm install --save d3@3.5.17
typings install dt~d3 --save --global
// in the TypeScript file
import * as d3 from 'd3';
这工作正常