2016-09-25 9 views
2

NPMに角型2コンポーネントを公開したい。このコンポーネントは、いくつかのフォントを参照するCSSを使用します。限り、私はそれを行うことができます.tsファイルを公開しています。しかし、私はCSSとフォントについては失われています。npm cssとフォントでコンポーネントを公開する

私が持っている:私はあるとして、CSSやフォントを離れることができないので、何を行うことができます

@font-face { 
    font-family: 'despotic-turtle'; 
    src: url('despotic-turtle/fonts/font.eot?ggipqk'); 
    /* ....*/ 
} 

:?

despotic-turtle.component.ts 
despotic-turtle.component.css 
fonts/font.ttf .svg ... 

を、私は私のCSSでこれを持っていますか

答えて

1

cssfontsおよびhtmlnpm publishに含まれます。あなたはこの仕事をするためにcommonjsを使用してコンパイルする必要があります

@Component({ 
    moduleId: module.id 
}) 

注意:あなたが遭遇するだろう

問題は、@ComponentmoduleIdを追加しない限り、参照CSSが見つからないということになります。

また、あなたがNPMに.tsファイルを公開すべきではない、あなたが公開する必要がありますファイルのみがindex.jsyour-component.js + your-component.css + your-component.html.d.tsファイルとfontファイルです。

翻訳されたファイルのみを公開するにはnpmを使用することに注意してください。ライブラリをインポートするときにコンパイルする必要はありません(@angularライブラリを確認してください)。

+0

はい、これらのファイルをコンパイルする必要がありますが、パブリッシュ(.npmignoreファイルに* .tsを追加)する必要はありません。あなたのフォントは見つからないでしょう、それは100%確信しています。これを解決する唯一の方法は、cdnを使うか、URLを使って自分自身でファイルをホストすることです。 – Supamiu

+0

問題は 'moduleId'がこの問題を解決するために' Component'デコレータに追加されましたが、cssファイル(フォントが必要な場所)ではここにはありません。 'url("/node_modules/...... ")'を使ってフォントをインポートする方法もありますが、あなたは既にそれを知っていると思いますし、mehのためにやりたくないと思っています。残念ながら私はあなたの問題のための解決策はないと思うcdnのストレージ。すべてのコンポーネントライブラリはcdnを使用しているため、その理由があります。 – Supamiu

関連する問題