私は、異なるプロジェクト間で共通のリソースを共有して自分のコードベースを整理する最良の方法を探しています。私は3つのaureliaアプリを持っています。それぞれ1つのリソースフォルダ(カスタム要素、属性など)にいくつかのリソースを追加しました。他のプロジェクトにすでに書いたものを必要としたら、貼り付けました。今私はリファクタリングする時間があります、私は専用リポジトリですべてのリソースを移動したいと思います。それから私は各プロジェクトで必要なリソースだけを選ぶことができるようにしたい。Aurelia外部リソース
私は私のすべてのモジュールのAMDモジュールを構築することを可能にするaureliaスケルトンからのgulpビルドタスクを使って私のすべてのリソースをレポに入れてみました。それから、aurelia.jsonでモジュールを追加することによって、いくつかのモジュールを個別に読み込むことができました。
{
"name": "aurelia-resources-progress-button",
"path": "../node_modules/SHG-aurelia-resources/dist/amd/resources/attributes",
"main": "progress-button"
}
またはカスタム要素:属性のexempleについて
{
"name": "aurelia-resources-avatar-upload",
"path": "../node_modules/SHG-aurelia-resources/dist/amd/resources/elements/avatar-upload",
"main": "avatar-upload",
"resources": [
"avatar-upload.html",
"avatar-upload.css"
]
}
それはシャルムのように働いたが、それは相対パスからモジュールをインポートする値変換に失敗しました。 ファイルは次の場所にあります。
"projectRoot/node_modules/SHG-aurelia-resources/dist/amd/resources/value-converters/duration-format.js", it import from '../utils./strings'
と私は実行AU次のエラーを取得する
:
"Error: ENOENT: no such file or directory, open '/Users/hadrien/Documents/dev/SportHeroes/united-heroes/src/resources/utils/strings.js'".
私は相対的なモジュールを必要としたときに奇妙なことがあります(私の進行状況のボタンのカスタム属性のような)テンプレートからは問題はありません。
私はレポのすべてのモジュールをロードしたくないので、プラグインを作りたくありません。可能ならば、フィーチャセット('../node_modules/path/resources')
を設定し、私のローカルリソースをロードするようなものをロードできるようにしたいと思います。
どうすればよいですか?
なぜあなたはプラグインを使用したくありませんか?プラグインとフィーチャーのAPIはほとんど同じです。既にNPMパッケージを介してリソースを配布しているので、これを実行する適切な方法はプラグインAPI経由です。 –
私はすべてのモジュールをロードしたくないので。私の外部リソースに10個のモジュールがあるとします。アプリケーションAは10を使用し、プラグインを使用できます。しかし、App Bは2つのモジュールしか使用しないので、この2つだけをロードしたい。 –
プラグインを使用する場合、「すべてのモジュールをロードする」必要はありません。 –