2017-01-23 6 views
4

私はAngular 2を試しています。私はnpm startを使ってChromeでライブコーディング環境を作成していますが、私は異常な動作を見ています。AngularJs 2アプリケーションがインスペクタに表示されたコマンドを実行できないのはなぜですか?

export class AService{ 
    constructor(private http : Http){} 
    test(valueA : string, valueB : string){ 
     var dataObj = { valueA, valueB } 
     console.log(dataObj); 
     console.log(this.http); 
    } 
} 

私のプログラムを実行した後、コンソールが正常に2つのオブジェクトを表示していました:ファイルA.service.tsに次のように

私のコードベースの以前のバージョンが登場しました。最初のオブジェクトは私に値 "valueA"と "valueB"を示し、2番目のオブジェクトはHttpオブジェクトで、私のサービスが適切に読み込まれていることを実証し、メソッドは期待値で呼び出されています。将来参照するために、このコンソールログパターンを「出力A」と呼びます。

サービス定義を変更しました。私はそれを数回変えました。アプリケーションは新しいバージョンのファイルを保存するたびに自動的にリロードされます。そして、各バージョンで、コードとコンソール出力をサービスオブジェクトテストメソッドに追加しようとしました。ただし、各繰り返しでは、「出力A」のみが表示されます。

テストメソッドのすべての元の行を削除しましたが、もう一度コードを実行しましたが、引き続き「出力A」が表示されます。

私はインスペクタでのコードの実行を追跡し、検査員は私に次のようになり、新しいコード、オーバー行ずつ取りますする必要があり

export class AService{ 
    constructor(private http : Http){} 
    test(valueA : string, valueB : string){ 
     console.log("Testing AService. Method called successfully."); 
    } 
} 

をデバッグ行は、次のコマンドが実行されたことを私に示してコンソールに "Testing AService ..."という文字列を記録しますが、これの代わりに前の実装の "Output A"を参照してください。私は.tsファイルをチェックし、.jsファイルをチェックして、両方とも新しいコードベースを表示します。 Chromeは新しいコードベースを示しますが、コンソールはOLDコードベースからログメッセージを受信して​​います。

私は

これは私には本当に厄介です.... NPMを閉じる​​には、Ctrl-Cを使用し、再度npm startと呼ばれ、今でも私は古いコードベースの出力を見てきました!何が起きているのかについてのアイデアはありますか?ブラウザのキャッシュ後

スクリーンショットは、システムの再起動が続くワイプ:

enter image description here

更新

システムを再起動し、すべてのキャッシュを拭いた後、私は再びすべての.jsファイルを検索し、見つかりました私の元のコードベースは実際に.jsファイルに入っていました。私の問題に対する答えは、これらのファイルを削除してからNPMを再起動することにあるようです....時計モードでTSCアプリケーションを実行しているときに、NPMがJavaScriptファイルを上書きしないようにしていたようです。

+0

'npm start'で実行しているものを再起動し、Webブラウザのキャッシュをクリアして生成されたファイルをクリアする必要があるかもしれません(生成されたファイルをバンドルするためにwebpackなどを使用しているかどうかを知る助けになります) ) –

+0

私がwebpackまたは他のファイルバンドラーを使用している場合、私はそれを知らずにやっています。あなたのアドバイスでは、すべての値の種類について、ブラウザキャッシュを「時間の始めまで」拭きました。私はnpmサーバ、Chromeブラウザ、IDEを閉じて、コンピュータも再起動しました。それでも、私は古いコードベースからの出力を見ていますが、それはもはや可視ファイルには存在しません。 –

+1

先週末、package.jsonファイルを次のように変更しました:{"scripts:{" start ":"同時に実行する "npm run tsc:w \" \ "npm run lite \ "...}} ....これは、別のポストの後に、nym startを実行しようとしていた2〜3回目に発生していた致命的なエラーを避けるために、この変更を 'npm start'クイックスタート - 'npm start'を使用してpackage.jsonファイルをシードします。新しいスクリプトは、 "並行"識別子をコマンドラインの先頭に移動します。 –

答えて

1

私の問題に対する答えは、これらのファイルを削除してからNPMを再起動することにあるようです....時計モードでTSCアプリケーションを実行しているときにNPMがJavaScriptファイルを上書きしないようにしていました。

元の質問の更新を参照してください。

関連する問題