我想解决的问题在下面显示的输出中表示:
15 06 2016 11:11:16.532:INFO [karma]: Karma v0.13.22 server started at http://localhost:9876/
15 06 2016 11:11:16.532:INFO [launcher]: Starting browser PhantomJS
15 06 2016 11:11:18.004:INFO [PhantomJS 2.1.1 (Windows 8 0.0.0)]: Connected on socket /#3nWVSRqI9N9XmHSCAAAA with id 41039744
PhantomJS 2.1.1 (Windows 8 0.0.0) ERROR
Error: Can't find variable: Dexie
Error loading C:/My/My.App/src/My.App.Web/test/case/MyObjectTest.js
[11:11:18] Finished 'test' after 2.8 s
我正在尝试测试MyObject
。它的依赖结构如下所示:
MyObject
- MyObjectDependency
- MyObjectDependency_Dependency
- Dexie
换句话说,MyObject依赖于MyObjectDependency,它取决于最终依赖于Dexie的MyObjectDependency_Dependency。
我正在使用TypeScript编写Aurelia Web应用程序。我通过jspm包含了Dexie库(indexedDB包装器)。要使应用程序构建/运行,我必须使用脚本标记直接将jxm_packages文件夹中的dexie.js直接包含到index.html。
我试图让Dexie使用SystemJS加载(就像它应该的那样),但它失败了。
我尝试更新我的业力配置,明确包含dexie.js,但没有解决上述输出中描述的错误。
我还尝试更新所使用的各种组件的版本,这似乎也没有帮助。
以下是我正在使用的关键组件的版本:
节点:4.4.4
JSPM :0.16.15
SystemJS :0.19.6
PhantomJS :2.1.7
Karma :0.13.22
Dexie :1.3.6
我走到了尽头。我不知道还能在哪里看。
如果需要任何其他信息,请告诉我 - 我很乐意添加我能做的事。
谢谢
答案 0 :(得分:0)
我试图让Dexie使用SystemJS加载(就像它应该的那样),但它失败了。
如果没有更多信息,我最好的猜测是你没有正确包含它。
import 'dexie';
请在此处查看答案以获取更多信息。
Would it be possible to use JQuery Bootstrap framework along with Aurelia?
答案 1 :(得分:0)
我在Matthew James Davis和alexeibs的帮助下找到了解决方案。非常感谢你们!
Matthew是对的,我错误地导入了dexie,我能够通过在Chrome中使用alexeibs建议和测试而不是PhantomJS找到确切位置。
似乎VS2015无法识别Dexie软件包附带的* .d.ts文件 - 这是我目前正在解决的问题。我将自己的* .d.ts文件添加到custom_typings
,明确指定了模块' dexie'。
我从Dexie复制了定义文件并更改了
中的最后一行export default Dexie;
为:
declare module "dexie" {
export default Dexie;
}
使用此版本的dexie.d.ts,VS2015现在对Dexie文档支持的import语句感到满意:
import Dexie from 'dexie'
。
在创建Dexie表类的过程中,我按照Dexie文档的建议添加了以下行:
const Promise = Dexie.Promise; // KEEP! (or loose transaction safety in await calls!)
const all = Promise.all;
我所拥有的每个地方都在破碎,因为我没有导入dexie。
创建了类型定义后,只需将导入import Dexie from 'dexie'
添加到这些文件即可解决问题。