0

我有一个打字稿项目,它使用 requirejs 来加载 jquery,所以我知道基本概念是有效的。我正在尝试设置 dexie,但无法正常工作。

我的要求配置如下所示:

require.config({

    baseUrl: '',

    paths: {
        //main libraries
        jquery: 'scripts/jquery-2.2.1',
        dexie: 'node_modules/dexie/dist/dexie.min'
    },

    shim: {
        jquery: {
            exports: '$'
        }
    }
}); 

我可以将它包含在如下的 require() 中并且它可以工作,所以我知道路径没问题。

require(['jquery', 'dexie'], function ($) {
    $(document).ready(() => {
        alert('all good');
    });
});

但是,当我这样做时:

import dexie = require('dexie');

Typescript 抱怨找不到“dexie”。

实际的 doco 说要做:

import Dexie from 'dexie';

但这也不起作用。

我究竟做错了什么?

4

2 回答 2

0

可能是您需要该dexie.d.ts文件。使用typings安装类型定义文件 sis 的最佳方式。

$ npm install -g typings
$ typings init
$ typings install dexie --save --ambient

然后添加对它的引用:

/// <reference path="./typings/browser.d.ts"/>

import Dexie = require('dexie');

var db = new Dexie('MyDatabase');

您需要设置编译器选项以将模块编译为 AMD 模块。

于 2016-03-09T03:10:08.387 回答
0

dexie 包最终出现了一些问题,作者非常擅长解决这些问题。

于 2016-03-10T03:01:57.507 回答