2016-11-02 7 views
0

私はAngular2コンポーネントライブラリを作成しています。私はnpmに公開しています。私は、ソースコード全体を通してバレルファイルとしてindex.tsを使用しています。私は* .tsを.npmignoreファイルに含めましたが、index.tsはnpmに公開されたコードに含まれています。私が消費するAngular2プロジェクトにコンポーネントをインストールすると、node.modulesフォルダにインストールされているコードにindex.tsが含まれています。 index.tsがルートフォルダにないため、インストールされているnpmライブラリ全体でindex.tsを使用すると、プライマリアプリケーションの構築が妨げられます。驚いたことに、他のすべての.tsファイルはnpmインストールで除外されています。公開時に.npmignoreがindex.tsファイルを無視しない

node_modules 
npm-debug.log 
Thumbs.db 
.DS_Store 
.idea 
.vscode 
*.ts 
**/*.ts 
**/index.ts 
!*.d.ts 
.gitignore 
.npmignore 
license-banner.txt 
tsconfig.json 
tsconfig.publish.json 

Everthingはindex.ts以外無視なっている:

は、ここに私の.npmignoreファイルです。

私は手動ですべてのindex.tsファイルに移動し、すべての期待どおりに動作するファイルを削除する必要があります。

index.tsが含まれていない原因は何ですか?

私はnpmバージョン3.9.6を使用しています。

ありがとうございました。

+0

'**/index.ts'は、ルートディレクトリではなく、すべてのサブディレクトリ内のすべての' index.ts'ファイルを無視することを意味します。これを修正するには '** /'を削除してください。とにかく、 '* .ts'は' index.ts'を無視すべきです... – Supamiu

+0

応答に感謝します。私はもともとは* .tsしか持っておらず、index.tsはまだ含まれていました。 **/index.tsはグローバル除外を試みました。すべてのサブディレクトリのすべてのindex.tsが含まれています。 @ストローをつかむ... –

答えて

0

多くの研究と試行錯誤の末、私のTSコードをJSにコンパイルするための出力ディレクトリとtypescriptタイプの情報(.d.ts)ファイルを追加する必要があることを発見しました。生成されたコードが別のフォルダ(この場合は/ lib)に入ったら、私の実装はlibフォルダからインポートするように変更されました。私の.tsファイルはすべてsrcフォルダに残っていました。

ライブラリをインストールした私のプロジェクトは、現在期待どおりにコンパイルされています。結論は、生成されたコード(JSと.dtsファイル)がソースコードとは別のフォルダにあることを確認することです。今明らかになっているようだ。

関連する問題