2017-05-13 8 views
0

が含まれています。新しいMeteorJSプロジェクトでは、Angular 4コンポーネントをうれしく書いています。流星とスタイラスでは、main.stylですべてのスタイラスファイルをインポートして、一時ビルドフォルダのmerged-stylesheets.cssに変換するのが一般的だと思います。MeteorJSスタイラス付き角4コンポーネントには、

これは問題なく動作します。しかし、コンポーネントを簡単に再利用できるようにするためには、コンポーネントタイプスクリプトファイルとテンプレートを使用してスタイラスファイルを作成する必要があります。しかし、私はexponleのためのWebpackを使用しているときに私がCSSファイルでできるように、コンポーネントファイルにスタイラスファイルをインポートすることはできません。

main.stylではなく、コンポーネントファイル自体にファイルをグローバルにインポートしないでください。

答えて

0
@Component({ 
    selector: 'app-input-form-example', 
    templateUrl: './input-form-example.component.html', 
    styleUrls: ['./input-form-example.component.css'] 
}) 

使用 "styleUrls" または "のスタイル:[]"

+0

私はスタイラスプリプロセッサを使用しています。 CSSを使用していないので、styleUrlを使用できません。私のCSSはMeteorのビルドフォルダに連結されています。 – Mattijs

0

私はあなたが唯一のビューのカプセル化を使用してコンポーネントファイルにあなたのスタイルを制限することができると思います。

カプセル化を表示すると、コンポーネント内で定義されたテンプレートとスタイルがアプリケーション全体に影響を与えるかどうか、またはその逆になります。 - メインHTMLからスタイルは コンポーネントに伝播

  1. Emulated(デフォルト):アンギュラは3つのカプセル化戦略を提供します。このコンポーネントの@Componentデコレータ で定義されたスタイルは、このコンポーネントにのみ適用されます。
  2. Native - メインHTMLのスタイルはコンポーネントに伝播しません。 このコンポーネントの@Componentデコレータで定義されているスタイルの範囲は、 です。
  3. None - コンポーネントのスタイルがメインHTMLに戻って伝播し、 がページのすべてのコンポーネントに表示されます。アプリケーションに「なし」コンポーネントと「ネイティブ」コンポーネントがあるアプリケーションは、 に注意してください。カプセル化なしの コンポーネントはすべて、ネイティブカプセル化を使用するすべてのコンポーネントで、そのスタイルを に複製します。

@Component({
// ...

カプセル:ViewEncapsulation.None、

スタイル:[

// ...
] })

http://plnkr.co/edit/E5Hb6B5dRN0llz3JuO57?p=preview

これがあなたを助けてくれることを願っています:)

+0

わからないMeteorのコンポーネントフォルダに別のSTYLUSファイルを使用していることを十分に明確にした場合は、ルートレベルでインポートする必要があります。そのスタイラスファイルをコンポーネントにのみ含めることが何らかの形で可能であればいいでしょう。したがって、現在のMeteorJSの設定では、スタイラスはルートに置かれた連結CSSファイルに変換されます。それがCSSファイルだった場合は、コンポーネントに直接インポートすることができます。 – Mattijs

+0

私はSTYLUSを一度も使ったことはありませんが、私たちが前処理していた草のようなものになると思います。コンポーネントにのみスタイルを含めるにはviewEncapsulation.Nativeを使用し、角度cliでサーブするときはSTYLUSをCSSに変換する方法が必要です。 angle cliでデフォルトスタイルのファイルタイプを選択するオプションもあります。それに応じてanglecli.jsonのアプリ設定を変更してください。 viewencapsulation nativeを使用すると、そのコンポーネントスタイルファイルはそのコンポーネントにのみ適用されます。 –

+0

私はドキュメントを見て遊びます。あなたの提案をありがとう。 – Mattijs

関連する問題