8

Typescriptはこのインポートでモジュールを見つけられませんimport ga from 'googleAnalytics';

SystemJSは、次のように前もってマップされているため、モジュールの場所を認識しています。

map: {
    '@angular': 'node_modules/@angular',
    'rxjs': 'node_modules/rxjs',
    'underscore': 'node_modules/underscore/underscore-min.js',
    'googleAnalytics': '//www.google-analytics.com/analytics.js'
},

に同様のマッピングを提供するにはどうすればよいtscですか?

この他の質問は良い方向を指しているようです: Angular 2 で非常に長い相対パスを持つインポートを回避する方法は?

Typescript 2.0 は のpaths設定をサポートしているようtsconfig.jsonです。Typescript 2.0をダウンロードする方法はありますか? SystemJSpathで行っているように、構成に http url (//www.google-analytics.com/analytics.js) を指定できますか? Typescript 2.0をダウンロードする方法がない場合、現在のバージョンで目的を達成するにはどうすればよいですか?

編集

私が得る具体的なエラーは、「モジュール 'ga' が見つかりません」です。

これが私のものtsconfig.jsonです:

{
    "compilerOptions": {
        "rootDir": "./",
        "target": "es5",
        "module": "system",
        "moduleResolution": "node",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "noImplicitAny": true
    },
    "exclude": [
        "node_modules",
        "front-end/node_modules",
        "typings/main",
        "typings/main.d.ts"
    ]
}
4

2 に答える 2

1

この問題はTypescript Type Definitionsで回避できます。

定義を使用するには:

  1. 型定義をディレクトリに配置します。事前に作成されたものは、DefiniteTypedによって提供されます。
  2. Google アナリティクスをインポートする必要がある .ts ファイルに次の行を追加します。

    /// <reference path="ga.d.ts" />
    

アップデート

私が走ったとき、それは私にとってうまくいきましたtsc。申し訳ありませんが、追加するのを忘れていました:

  1. s と SystemJS のマッピングにリファクタリングしgaます。import

これは、SystemJS ファイルをチェックする必要があることをコンパイラーに知らせませんが、インポートするモジュールのプレースホルダーのように機能するだけなので、エラーはスローされず、実行時に SystemJS を使用して実際にモジュールを解決できます。

于 2016-05-10T01:26:34.583 に答える
0

タイプスクリプトのコンパイルの場合、トランスパイラーは間違いなくタイプファイルを探していることを理解していると思います。外部モジュールの型定義を知る必要があります。アクティブな nodejs モジュールの解決があり (持っている)、非相対パスを使用している (持っている) 場合、プロジェクトの node_modules ディレクトリ (既に持っている可能性があります) に追加し、このディレクトリに googleAnalytics.d.ts を追加する必要があります。ファイルまたは node_modules/googleAnalytics ディレクトリを作成してそこに index.d.ts. Google アナリティクスの定義タイプは、DefintelyTypedリポジトリからダウンロードできます

モジュールの解決に関する詳細はこちら

編集:あなたのコメントによると、モジュールのエクスポートをGoogle定義ファイルに追加する必要があるかもしれません

declare module 'googleAnalytics' {
    export = UniversalAnalytics;
}
于 2016-05-15T20:47:53.807 に答える