2016-10-22 6 views
2

Aureliaホームページhereのビデオチュートリアルに従って、基本的なAureliaプロジェクトを設定しようとしています。私はビデオで与えられた正確な手順に従ったと思う(ちょうどES6をTypescriptに変えた)。私はau run --watchを実行することにより、アプリケーションを実行しようとしたときAurelia CLI + Typescript:モジュールエラーが見つかりません

が、それは私にこのエラーを与えた:私はaurelia_projectディレクトリを開いたときに

ReferenceError: define is not defined 
at Object.<anonymous> (/aurelia_project/tasks/build.js:1:63) 

はさらに調査、私はすべての.tsファイルがcannot find moduleエラーで満たされていることがわかりました。例えば、

[ts] Cannot find module 'gulp'. 
[ts] Cannot find module 'aurelia-cli'. 

など..

私はこれらのモジュールを解決するotのtypescript cliのためのいくつかの追加のステップを実行する必要がありますか?それは場合に役立ちます。ここ

tsconfig.jsonです:活字体で外部ライブラリを使用する際のオプションがいくつかあります

{ 
    "compileOnSave": false, 
    "compilerOptions": { 
    "sourceMap": true, 
    "target": "es5", 
    "module": "amd", 
    "declaration": false, 
    "noImplicitAny": false, 
    "removeComments": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "moduleResolution": "node", 
    "lib": ["es2015", "dom"] 
    }, 
    "exclude": [ 
    "node_modules", 
    "aurelia_project" 
    ], 
    "filesGlob": [ 
    "./src/**/*.ts", 
    "./test/**/*.ts", 
    "./typings/index.d.ts", 
    "./custom_typings/**/*.d.ts" 
    ], 
    "atom": { 
    "rewriteTsconfig": false 
    } 
} 
+0

あなたはプレーンなCLIのプロジェクトを行っているとDEPのインストールと 'auのrun'した後、あなたがそのエラーMSGを取得する場合は、何かがバギーです。あなたの古いnodejsバージョンでも、単にインストールしたcliのバージョンにバグがあるかもしれません。第2に、 'aurelia_project'フォルダの項目の入力が設定されていません。完璧にコンパイルされます。正しいタイピングが必要な場合は、使用するgulpモジュールのタイピングをインストールする必要があります。例えばtsconfigで "moduleResolution": "node"を設定し、タイピング用に 'npm install @ types/gulp --save-dev'を設定します。 –

答えて

2

aurelia_json/tasks内のすべての*.jsファイルを削除します。次に、au run --watchを繰り返します。

なぜですか?あなたは間違ってオーレリアCLIはgulp-typescriptを使用していますので、あなたは、したくないのJavaScriptにあなたのaurelia_json/tasks活字体を、transpiledています。 aurelia_json/tasks内のすべての*.jsのファイルを削除して、あなたは罰金になります。

問題が定義型とは無関係です。 Meirion Hughesがコメントしたように、TypeScriptコンパイラはそれらなしで動作します。

+0

ありがとうございました。 'aurelia_json/tasks'タイスクリプトファイルがjavascriptに変換された原因を知っていますか? – akshayKhot

+0

また、 'au run --watch'コマンドが動作してアプリを起動したにもかかわらず、typescriptエラーが' .ts'ファイルに残っていることに気付きました。それを修正するために何かできますか? – akshayKhot

+0

@akshayKhot私はあなたのフォローアップの質問のいずれかの答えが分からないことは怖いです。 –

1

。 1つのオプションは、指定されたライブラリの定義ファイル(.d.ts)をインポートすることです。これを行うにはいくつかの方法があります。私は個人的にはタイピング(npm i typings -g)を使用することを好みます。

typings search <LIBRARY_NAME> 

これはあなたの検索のためのマッチのリストが表示されます:タイピング一度

は、次のコマンドを実行することができ、グローバルにインストールされています。あなたが望むライブラリとそれをダウンロードするソースを選択します。ほとんどがdt(DefinitelyTyped)から来ます。次に、次のコマンドを実行します。

typings install <SOURCE>~<LIBRARY_NAME> --global 

たとえば、次のコマンドを実行します。

グローバルフラグは、定義ファイルをプロジェクトのグローバルディレクトリにインストールするように指示します(タイプにはすべての場所でアクセス可能です)。

TypeScriptはそれだけでなく、すべての外部ライブラリに対して豊かなインテリセンスを提供します(これは、あなたがAPIを忘れてしまったため、ブラウザとエディタの間を行き来することはありません)。

何らかの理由で実際に入力を使用したくない場合は、定義ファイルを自分で見つけることができます(通常はDefinitelyTypedリポジトリから利用できます)。

declare module '<MODULE_NAME>' { 
    let <LIBRARY_NAME>: any; 
    export default <LIBRARY_NAME>; 
} 

ライブラリの定義ファイルが存在しない場合は、実際にのみ使用してください他のオプションは、プロジェクト内のどこかに、独自の定義ファイルを宣言し、ファイルに次のように置くことです

これは、MODULE_NAMEが存在することをTypeScriptに通知するので、不平を言い、デフォルトのany型のLIBRARY_NAMEをエクスポートします。もちろん、この方法ではあなたのライブラリでインテリセンスを得ることはありません。

最後に、定義ファイルを自分で作成して(存在しない場合は)、それをDefinitelyTypedに提供することもできます。私はそれがはるかに高く評価されるだろうと確信している:)

希望に役立ちます。

関連する問題