最初のパッケージ(reactコンポーネント)をnpmに公開したのですが、lib
ディレクトリとdist
の違いを理解するのに問題があります。
現在、私はlib
とdist
の両方を生成していますが、私のパッケージの「メイン」は、webpackを使用してビルドされ、UMDとして出力されたdist
縮小化されたjsファイルを指しています。 libフォルダーはbabel
を使用して構築され、src
を取得してlib
に出力します。
Distフォルダーには、[unminified/minified] .jsファイルと[unminified/minified] .cssファイルの両方が含まれています。
私の主な混乱はlibフォルダーです。そこからのインポートはsrc -> lib
は、scss参照がまだ存在し、scssファイルも変換されないことを意味します。
CSSモジュール(css-loader、styles-loader、postcss-loaderなど)を使用してCSSファイルを生成しますが、ここで混乱が生じます。lib
を生成するためにwebpackを使用する必要もないでしょう。 scss
ファイルと見なされるフォルダー/インポート参照をcss
に変換する必要がありますか?
libとdistの両方を使用するつもりですか、それともUMDビルドはdistにlibフォルダーを持つのと同じ目的を満たしていますか?
jsファイル内でCSSモジュールを使用しているときにlibフォルダーの生成に関する情報を見つけることができず、srcのフォルダー構造と同じフォルダー構造を維持しているため、これを実現する方法を両方持っているはずです(まだdistを生成していますか?
通常、dist
フォルダーは、ユーザーがパッケージ管理を使用していない場合に使用できるUMDを出荷するためのものです。 lib
フォルダーは_package.json
_ main
が指すものであり、npm
を使用してパッケージをインストールするユーザーはそれを直接使用します。 lib
とは対照的にsrc
の唯一の用途は、Babelとwebpackを使用してソースを変換することです。これは、ほとんどのビルドプロセスが_node_modules
_。
スタイルのインポートの処理に関する限り、エクスポートするソースjsにscssまたはcssファイルをインポートしないことをお勧めします。これは、ノードがデフォルトでそのようなスタイルをインポートできないためです。コンポーネントをデモする例がある場合は、そこにスタイルをインポートするのが理にかなっています。一般的なパターンは、dist
フォルダーに縮小化されたcssと非縮小化されたcssを公開することです。ドキュメントでは、好みの手法を使用してcssファイルを明示的にインポートするようコンシューマーに指示します。例が必要な場合は、このアプローチを redux bug reporter で使用しました。お役に立てば幸いです。
これを行う方法を見つけたと思います。 babelを実行するときにwebpackローダーを使用できるようにするbabelプラグインがあります( babel-plugin-webpack-loaders )。したがって、CSSマッピングはjsファイル内にインライン化され、使用されるマッピングハッシュもdistのビルド時に使用されるものと同じです。わーい!
一般にlib
はパッケージに含まれているライブラリを指し、一方dist
はプロジェクトの配布ファイルです。例として、一連のJavaScriptを記述し、jquery(これはlibです)を含めることができます。それらがすべてバンドルされると、単一のdistファイルができます。