2016-11-10 12 views
0

私はAngular2プロジェクト(angular-cliで生成)を持っています。私はメインモジュールとサブモジュールを持っています。サブモジュールは明確に定義されたコンセプトを表しているので、(潜在的に再利用可能な)NgModuleとするのに適しています。Angular2 NgModuleから共有スタイルにアクセス

サブモジュールは、さまざまなコンポーネントをカプセル化し、1つのコンポーネントのみを外側に公開します。それはすべていいです、それはモジュールが再利用できるようにうまくいきます。

しかし、このモジュールには、完全に分離された再利用可能なモジュールではなく、グローバルな依存関係が1つあります。 scssファイルは@importを使用して共通のscssファイルにアクセスします。共通のscssファイルがモジュール外にあります。

ので、具体的には、モジュール内部のscssスタイルファイルは、相対パスを使用して、モジュールの外scssファイルを参照し、次のように:

@import './../../../assets/styles/common-props'; 

私はモジュールにscssファイルをコピーする必要はありません。共通のscssファイルを消費する最良の方法は何ですか?モジュールを再利用するのが簡単になります。ベストプラクティスはありますか?

+0

あなたはいくつかのコードを投稿できますか?私はあなたが何をしようとしているのか見たいと思います。 –

+0

@JohnBairdコードを追加 –

答えて

0

ここに実際にベストプラクティスがあるかどうかはわかりません。それは、外部SCSSリソースをどのようにインポートおよび管理するかによって異なります。

  1. HomebrewまたはNPMアップデートでSCSSリソースを更新したい場合は、そのソースディレクトリからSCSSリソースをインポートする方法があります。
  2. SCSSリソースへのアップグレードパスを手動で制御する場合は、ファイルをSCSS階層に移動してインポートするだけです。

一般的に、私はアプローチ#2を好む。

私は外部のSCSS/CSSファイルを整理し、そのフォルダ構造から単にインポートするための 'libs'というディレクトリを持っています。

私は#1を使用するエッジケースがありますが、まれです。

+0

シナリオ2では、SCSSファイルへの相対パスをモジュールにハードコードする必要がないため、他のプロジェクトでは再利用できません。 –

+0

シナリオ1では、ノード・モジュールをscssファイルから作り、内部のnpmサーバーに公開できると言っていますか? –

+0

私はあなたの質問に答えているかどうかわからない、多分私は完全にそれを理解していない。 SCSSの構造全体を組み込み、外部のSCSSリソースをマスターインポートファイルにどのように組み込むかを示します。 – Lowkase

関連する問題