私はとても簡単な「hello world」Angular2アプリを持っていました。私は、私の開発プロジェクトと私の春のバックエンドの最終的な展開フォルダとの間で、異なるディレクトリ構造を使って作業するように、明らかに不合理な決断を下しました。Angular2&TypeScriptでnode_modulesをインポートする
TypeScriptのインポートに問題があり、ブラウザで実際のアプリケーションを開こうとしたときに404行のエラー(/ angular2/coreライブラリが見つかりません)が発生しました:
import {Component, View} from 'angular2/core';
だから、長い話を短く、私はすべての仕事をするために/ appフォルダをバック追加してしまったが、私は次のように私のimport文を修正することになった:
import {Component, View} from '../node_modules/angular2/core';
これは、しかし、原因が判明しましたいくつかの奇妙な行動。ライブラリパスに../node_modules
を指定するいくつかの理由は、JSが実際にAJAXを使用してゼロからALL Angular2ファイルをロードする原因となっているために、これは私のHTMLヘッダーの一部であったにも関わらずnpm_modules/angular2/
フォルダから一人ひとりの個別のファイルを取得するために呼び出します。
<script src="/node_modules/angular2/bundles/angular2.dev.js"></script>
私は最終的に私に何が起こっているのか実現バック
import {Component, View} from 'angular2/core';
にimport文を元に戻すと、それはすべて働きました。 Angular2は上のスクリプトタグから完全にロードされ、余分なajax呼び出しによってロードされるファイルはありませんでした。
誰かが原因を説明できますか?私はそれが正常な動作だと仮定しますが、インポートの仕組みや、より詳細なパスを指定することでそのような違いが生じる理由は理解できません。
TSの世界でのモジュールのインポートの詳細については、次のURLを参照してください。https://www.typescriptlang.org/docs/handbook/module-resolution.html ドキュメントはこれでうまくいきます。本当に。 – rashadb