0

私が解決しようとしている問題は、以下に表示される出力に示されています。

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 は、最終的に Dexie に依存する MyObjectDependency_Dependency に依存する MyObjectDependency に依存します。

TypeScript で Aurelia Web アプリを作成しています。jspm を介して Dexie ライブラリ (indexedDB ラッパー) を含めました。アプリをビルド/実行するには、スクリプト タグを使用して、jspm_packages フォルダーから直接 index.html に dexie.js を明示的に含める必要がありました。

SystemJS を使用して Dexie をロードしようとしましたが (そうあるべきです)、失敗しました。

上記の出力で説明されているエラーを解決しなかった dexie.js を明示的に含めるようにカルマ構成を更新しようとしました。

また、使用されているさまざまなコンポーネントのバージョンを更新しようとしましたが、これも役に立たないようです。

私が使用している主要コンポーネントのバージョンは次のとおりです。

ノード: 4.4.4

JSPM : 0.16.15

システムJS : 0.19.6

PhantomJS : 2.1.7

カルマ: 0.13.22

デキシー:1.3.6

私は行き止まりに達しました。他にどこを見るべきかわかりません。

追加情報が必要な場合はお知らせください。できる限り追加いたします。

ありがとうございました

4

2 に答える 2

0

Matthew James Davis と alexeibs の助けを借りて解決策を見つけました。お二方、どうもありがとうございました!

Matthew は、私が間違って dexie をインポートしていたことは正しかったので、alexeibs の提案を取り入れ、PhantomJS ではなく Chrome でテストすることで、正確にどこを見つけることができました。

Dexie パッケージに付属する *.d.ts ファイルが VS2015 で認識されないようです。custom_typingsモジュール「dexie」を明示的に指定するために、独自の *.d.ts ファイルを追加しました。

Dexie から定義ファイルをコピーし、最後の行を

export default Dexie;

に:

declare module "dexie" {
    export default Dexie;
}

このバージョンの dexie.d.ts では、VS2015 は Dexie ドキュメントでサポートされているインポート ステートメントに満足しています。

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'たら、これらのファイルにインポートを追加するだけで、最終的に問題が解決しました。

于 2016-06-16T13:06:41.017 に答える
0

SystemJS を使用して Dexie をロードしようとしましたが (そうあるべきです)、失敗しました。

これ以上の情報がなければ、適切に含めていないというのが私の最善の推測です。

import 'dexie';

詳細については、こちらの回答をご覧ください。

Aurelia と一緒に JQuery Bootstrap フレームワークを使用することは可能でしょうか?

于 2016-06-16T01:17:58.227 に答える