2017-04-23 9 views
1

githubの@shopify/polarisプロジェクトがどのように構築され、npmに公開されているかを知ることに興味があります。私の主な質問は:@ shopify/polarisプロジェクトはgithub repoからnpm依存関係までどのように構築されますか?

  • index.es.jsindex.jsファイルはどのように生成されていますか?それらは私のコンピュータ上でプログラムで生成されているのですか、それともnpmに公開されていますか?
  • インストール時にgithubレポのファイルがダウンロードされないようにするメカニズムはありますか?レポに.npmignoreが表示されません。

以下は、npmパッケージに含まれるファイルとgithubファイルの内容が異なっていることがわかります。

polarisプロジェクトは、NPM/yarnを使用してインストールしたときのように見えます。

. 
├── CHANGELOG.md 
├── README.md 
├── index.es.js 
├── index.js 
├── package.json 
├── src 
├── styles 
├── styles.css 
├── styles.scss 
└── types 

これは、githubのプロジェクトの外観です。

. 
├── CHANGELOG.md 
├── README.md 
├── circle.yml 
├── config 
├── documentation 
├── examples 
├── package.json 
├── scripts 
├── src 
├── tests 
├── tsconfig.json 
├── tslint.json 
└── yarn.lock 

答えて

0

Rollupを使用して、Polarisの異なるエントリファイルを生成します。一般的な設定ファイルはhttps://github.com/Shopify/polaris/blob/master/config/rollup/index.jsです。 (TypeScriptとBabelを使用して)TypeScriptソースファイルをコンパイルするすべての作業を行い、適切なCSSとアイコンをバンドルするために必要な作業を開始することに注意してください。 https://github.com/Shopify/polaris/blob/master/scripts/build.js#L36-L38

  1. mainエントリファイル(.js、そして私たちのCDNのためのCSSを吐き出す)
  2. moduleエントリファイル(.es.js
  3. :この設定ジェネレータは、あなたがここに見ることができる3回、実行されます
  4. embeddedエントリファイル

これらをNPMパブリッシュの最終的な場所にコピーします。

NPMパッケージに含まれるファイルをどのように制御するかについては、package.jsonfiles keyを使用しています。 these are the relevant lines

関連する問題