私は複数のAngularプロジェクトとNodeJSプロジェクトを含むプロジェクト(すべてTypescript)を作成しています。その部分はうまくいっていますが、自分のソースフォルダの下に、私のTypescriptプロジェクトのすべてがプロジェクトモジュール、Typescriptインターフェイス、NgModulesなどを共有できるライブラリフォルダを持つことができれば、それはかなり素晴らしいと思いました。しかし、コンパイルすると実際のモデルへのModuleFactoryの参照は、私の 'lib' NgModulesのために正しく翻訳されません。Angular AoTが不正な外部ディレクトリの参照を生成する
私はデモを作成し、例として私のGitHubにアップロードしています
npm run build-aot // Builds and fails for production
npm run build-jit // Builds and runs for dev i.e. "ng serve --dev"
npm run compile-aot // To compile and keep AoT folder in src, just ngc
下NPMスクリプトとしてコンパイルスクリプトを https://github.com/ItsBaneDude/broken-external-links
私が含まれてきた私が仕えるJITを置くことを忘れてしまいましたあなたが自動的にそれをブラウザで実行しているのを見ることができるので、私はあなたがそれを達成するためにng serve --dev
を行うことができます。
だから、何が起こるか:あなたは本番、npm run build-aot
用にビルドしようとすると、それは
ERROR in C:/Users/Bane/Documents/node_projects/broken-external-libs/src/project-ng/aot/lib/modules/test/test.module.ngfactory.ts (10,21): Cannot find module './test.module'.
残念氏は述べています。なぜ私は不思議です。
は... IBMアカデミーは...それ "作品"npm run compile-aot
でコンパイルし実行しますオーケー
ので、IBMアカデミーのfoderはsrc/project-ng/aot
で生成されます。私が.../aot/app/app.module.ngfactory.ts
に入ると、私は10行目にの importを私のappモジュール用に見ます。
import * as i1 from '../../app/app.module';
さて、涼しい、それは正しくバック../../app/app.module
にすべての道をたどり、成功し解決します。しかし
、私は...aot/lib/modules/test/test.module.ngfactory.ts
に、私のlib
フォルダ内を除いて、再びIBMアカデミーフォルダに行けば、私は輸入私TestModuleにしようと、再び、10行目でそれを見るが、./test.module
import * as i1 from './test.module';
しかし、われわれが合理的な、自己とコンピュータを認識している人間として知っているように、それはもっと../../../../../lib/modules/test/test.module
のようにすべきです。
Yカントー
これのいくつかは私にはかすんでいるようだ場合、私は吸うので、それはあるかもしれないので、私は最近、アンギュラ開発を開始しました完全に公平であるために。しかし、私は吸うことを減らすために探しています!誰かが私に手を貸してくれたら、私はあなたの借りた専門知識を非常に感謝しています。