2017-10-25 11 views
0

私は複数の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カントー

これのいくつかは私にはかすんでいるようだ場合、私は吸うので、それはあるかもしれないので、私は最近、アンギュラ開発を開始しました完全に公平であるために。しかし、私は吸うことを減らすために探しています!誰かが私に手を貸してくれたら、私はあなたの借りた専門知識を非常に感謝しています。

答えて

0

私が発見してたつもりは終わったの答え:

角度コンパイラ-CLI < 1.5.0-rc.5(私はそれがリリース候補5だと思う、私は変更のログを見ていなかった)んにこの動作をサポートしていません。コードを開発するためのこのプロジェクトの最初の段階で、私はAngular 5で開発していて、私が期待した結果を得るだけです。

関連する問題