2016-01-06 214 views
5

私は新しいプロジェクトのベースとしてaurelia-typescript-skeletonを使用しています。私はsrcフォルダにTypeScriptモジュールを参照する際のエラーTS2307:モジュールが見つかりません

export class Hello { 
    sayHello(name:string) : string { 
    return 'Hello ' + name; 
    } 
} 

を新しいhello.tsファイルを追加しようとした

import {Hello} from './hello'; 

export class Users { 
    constructor() { 
    console.log(new Hello().sayHello('Test')); 
    } 
} 

以下と同じフォルダ内の別のファイルでそれを参照する両方のファイルが同じフォルダレベルです。私が初めてビルドすると、すべてうまく動作します。 users.tsファイルでその後の変更を行うと、理解できないエラーで gulp-typescriptコンパイルが失敗し続けます。私はエラーがない、新鮮な gulp watchを行うたびtypescriptですコンパイラからエラーが

> Starting 'build-system'... 
> src\users.ts(4,21): error TS2307: Cannot find module 'hello'. 
> TypeScript: 1 semantic error 
> TypeScript: emit succeeded (with errors) 
> Finished 'build-system' after 950 ms 

です。 users.tsファイルを編集/変更するとエラーが表示されます。誰も私がこのエラーを理解するのを手助けできますか?それは基本的な何かでなければなりません...

私はWindows 7環境で、私は2台のマシンでこのエラーが発生します。

UPDATE:ここ

repo to reproduce the problemです。再現する手順:

  1. クローンレポ、すべてのnpmjspm依存関係をインストールします。
  2. 実行gulp watch - >エラーは発生しません
  3. users.tsファイルを変更して保存します - >エラーが発生します。

アップデート2:build-systemは、問題を回避するのに役立ちます前に

cleanステップを追加します。ここはthe link to commitです。それでも問題の実際の理由は最初は分かりません。

+0

gulpからもエラーメッセージを追加してください。 –

+0

@MartinVseticka質問のコンソール出力を参照してください - それは私がgulpタスクから得たものです – Mikhail

+0

私はrepoをダウンロードし、それをインストールしようとしました[ubuntu 15.10]。ビルドスクリプトは私にとってはうまくいくようです。私は '/aurelia-typescript-skeleton/jspm_packages/github/aurelia/[email protected] 'の代わりにしなければなりませんでした。1/aurelia-fetch-client.d.ts'(エラーが含まれていました):https://pastee.org/v5ghs私の 'gulp watch'出力:https://pastee.org/pzskc –

答えて

0

noResolveが有効(tsconfig.json)の間に、変更されたファイルであるusers.tsのみが後続のTSコンパイルに送信されるためです。変更されたどのファイル

.pipe(changed(paths.output, {extension: '.js'})) 

が先と入力ファイルの最終更新日時を比較して(gulp-changedによって)決定されます

ファイルbuild/tasks/build.js、タスク'build-system'を参照してください。したがって、cleanまたはwatchを実行すると、cleanが含まれています。宛先がクリーンアップされ、すべてのファイルが再度コンパイルに送信されるため、エラーは発生しません。

更新されたスケルトンアプリケーション(1.0.0-beta.1.2.2)を試してみたので、この問題は修正されました。

+0

コンパイラが1つのファイルだけをコンパイルできないのですか? (と依存関係を解決するためにスマートになる)なぜそれはubuntuで動作しましたか? – Mikhail

+0

実際にTSにコンパイル時[モジュール解決](https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Module%20Resolution.md)があります。しかし、noResolveが有効なので、解決されたファイルはコンパイルに自動的には含まれません。 – qtuan

関連する問題