2016-08-21 8 views
1

TypeScript/ASP.NETコアスケルトンナビゲーションアプリケーションを使用してAureliaを学習しています。すべてがデフォルト状態で正常に動作します。エクスポートされた実動バンドルをテストするには、Gulp Exportタスクを実行し、Visual Studioプロジェクトを介してアプリケーションを公開してローカルフォルダに公開し、公開されたwwwrootフォルダを "export"フォルダ内のwwwrootフォルダに置き換え、アプリケーションを実行するコマンドライン。ソースモジュールがサブディレクトリにある場合、AureliaによってバンドルされたバンドルがSystemJSから404になります

サブディレクトリにソースモジュールがあると問題が発生します。たとえば、welcome.ts/htmlコンポーネントファイルを "/ src/Pages"に移動し、app.tsのルートmoduleIdを "./pages/welcome"に応じて調整しました。アンバンドルされたアプリケーションはまだ正常に動作していますが、エクスポートしたバージョンを試すとSystemJSの要求がhttp://localhost:5000/dist/pages/welcome.jsになります(期待どおり)。

私はapp-build.jsファイルのwelcomeコンポーネントの内容を見ることができ、exportフォルダ内のconfig.jsファイルには期待されるファイルパス、つまり「Pages/welcome ...」が含まれています。私はこの一見同様の問題を読んだ

は:

https://github.com/aurelia/bundler/issues/131

しかし、設定depCache falseに私の場合には差が行われていません。なぜSystemJSはこのモジュールをバンドルの外部とは別にロードしようとしていますか?

答えて

1

このエラーはローカルで再現できました。 Windows環境があると仮定すると、大文字と小文字の区別の問題になります。

[P]agesフォルダの名前を[p]agesに変更した後、バンドルされたバージョンが期待どおりに機能します。

ファイルシステムには[P]ages/welcome.jsのビューモデルがありますが、[p]ages/welcomeはmoduleIdとして定義されています。

  • アンバンドルモード: Windowsのファイルシステムでは、大文字と小文字を区別しない、正しく[P]ages/welcome.jsをロードすることによって、誤解を招く可能性が動作です。プロセスは[P]ages/welcomeモジュールとして[P]ages/welcome.js埋め込み束ね、ファイルパスに基づいて
    • モードをバンドル。
    • しかし、ルート設定によれば、SystemJSは[p]ages/welcomeモジュールをapp-build.js内に探します。

私の推薦はそれが可能だたび小文字のフォルダ/ファイル名を使用することであろう。

+3

はい!信じられない! Aureliaはすばらしいフレームワークですが、ビルドとバンドルのオプションは複雑すぎるようです。私の限られた時間の大部分は、Aureliaを学ぶのではなく、JSPMとのレスリングに費やされました:-( –

関連する問題